文件上传问题与表格检查js

时间:2009-12-22 12:38:43

标签: 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

1 个答案:

答案 0 :(得分:0)

<?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,这是您遇到的问题的常用解决方法,并阻止页面重新加载。