之前尚未解决文件上传问题,但遇到了初步问题。
我已经有一个更新用户偏好的表单(电子邮件和选项的几个复选框)。
这完全正常,但我现在正在将个人资料图片添加到表单中。
表单如下:
<form class="updatepref" method="post" enctype="multipart/form-data">
<input type="email" name="email">
<input type="file" name="upfile">
<input type="submit" class="update" Value="Save Settings">
</form>
我通过ajax发布此数据:
$('.updatepref').submit(function(){
$.ajax({
type: "POST",
url: "../process/updateuserpref.php",
data: $('.updatepref').serialize(),
dataType: "json",
success: function(response){
}
});
return false;
});
然后文件上传的PHP页面的开头是:
// Undefined | Multiple Files | $_FILES Corruption Attack
// If this request falls under any of them, treat it invalid.
if (
!isset($_FILES['upfile']['error']) ||
is_array($_FILES['upfile']['error'])
) {
throw new RuntimeException('Invalid parameters.');
}
无论如何,我总是得到“无效参数”。错误信息。
怎么回事?可以ajax序列化文件上传吗?
当我签入发送的参数(使用firebug)时,它只显示电子邮件和任何勾选框等。文件未发布。