我正在使用下面的mootools1.2表单检查js。http://mootools.floor.ch/en/demos/formcheck/
因为表单检查工作得很好,它与ajax表单post一起工作得很好。
我的问题是,当我使用AJAX上传文件来发布表单时。
那么它就不会将$_FILES数组返回给PHP端。
如果我正常地发布表单(即没有ajax),那么一切正常意味着所有的post和文件数组都会进入php端。
当ajax表单post时,它返回post数组中的选定文件名,而不是完整的$_FILES排列
发布于 2009-12-22 21:48:56
<?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上传文件,因为你不能访问文件。浏览器保护了输入type=file的内容,例如IE7会提供C:\fakepath\filename.ext,而火狐只会提供filename.ext。但这些是字符串,而不是文件本身。所以你真的需要使用表单提交来提交文件。
上面的代码将表单内容发布到iframe,这是您遇到的问题的常用解决方法,可以防止页面重新加载。
https://stackoverflow.com/questions/1946136
复制相似问题