php - 表单检查js的文件上传问题

标签 php javascript ajax file-upload mootools

我正在使用以下 mootools1.2 表单检查 js。 http://mootools.floor.ch/en/demos/formcheck/

对于表单检查工作正常,它与 ajax 表单发布工作正常。

我的问题是,当我通过文件上传使用 AJAX 发布表单时。

然后它没有将 $_FILES 数组返回到 PHP 端。

如果我正常发布表单(即没有 ajax),那么一切正常意味着所有的帖子和文件数组都在 php 端。

虽然 ajax 表单在 post 数组中返回选定的文件名但不是完整的 $_FILES arrat

最佳答案

<?php
    if(count($_FILES) > 0)
    {
        echo('<pre>');

        var_dump($_FILES);

        die('</pre>');
    }
?>

<html>
    <head>
        <title>Simple file upload with iframe</title>
    </head>
    <body>
        <form enctype='multipart/form-data' method='post' action='<?php echo($_SERVER['PHP_SELF']); ?>' target='iframe'>
            <input name='file' type='file' />
            <input type='submit' value='Send' />
        </form>
        <iframe name='iframe' style='width: 800px; height: 400px;'></iframe>
    </body>
</html>

据我所知,您无法使用 AJAX 上传文件,原因很简单,您无法访问该文件。浏览器已经保护了输入类型=文件的内容,例如 IE7 会给出 C:\fakepath\filename.ext 而 Firefox 只会给出 filename.ext。但这些是字符串而不是文件本身。所以你真的需要使用表单提交来提交文件。

上面的代码会将表单内容发布到 iframe,这是解决您遇到的问题并防止页面重新加载的常用解决方法。

关于php - 表单检查js的文件上传问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1946136/

相关文章:

php - 在 IIS 上运行 PHP 应用程序需要什么?

PHP 动态变量作为 jQuery 选择器

javascript - 使用 ajax 返回 mysql_num_rows

javascript - Gulp - 管理库依赖项

javascript - div 中显示上一页,并显示最后一页数据表

php - 如何使用雅虎财经获取实时股价

php - 如何添加自定义 "under maintenance"页面?

php - Laravel 如何使用查询生成器从 created_at(时间戳)转换为日期?

javascript - 动画无法按设置运行

javascript - 尝试使用 Angular 2 从本地主机访问街景时,Google 街景 API CORS 问题