由于某种原因,我的上传表单无法工作,当我提交表单时,PHP文件会运行,而我的$_FILES变量为空。我已经被困了好几个小时了,我觉得我已经浏览了这个网站上的每一篇帖子,我只是不明白出了什么问题。
HTML
<form id="uploadform" name="uploadform" method="POST" enctype="multipart/form-data">
<input id="realupload" name="realupload" type="file" multiple/>
<input id="uploadsubmit" type="submit" value="upload"/>
</form>
JQuery
$('#uploadsubmit').click(function(e)
{
e.preventDefault();
$.ajax({
type: "POST",
url: "upload.php",
data: function(){
alert("test");
var data = new FormData();
data.append("realupload", jQuery("#realupload").get(0).files[0]);
return data;
}
,
processData:false,
contentType: false,
cache: false,
success: function(theData){
$('#innercontent').html(theData);
},
error: function() {
$('#innercontent').html("ERROR, HELP");
}
});
}
});
PHP(upload.PHP)
<?php
//upload.php
if (isset($_FILES["realupload"]))
{
echo "SUCCESSFUL UPLOAD " . $_FILES["realupload"]["error"];
}
else{
echo "FILES NOT SET";
}
?>
- PHP文件只是一个测试文件,用于检查上传是否有效
- 每次都输出FILES NOT SET
- ajax数据函数内部的警报没有运行,我不确定它是否应该运行
- 正在尝试创建多文件上传程序
这可能与服务器有关吗?那里已经上传了一个论坛,它本身就允许上传,所以我不认为是这样,但我不确定。
谢谢!
编辑:伙计们,谢谢你们的链接,但你们现在可以用HTML5和XmlHttpRequest2对象上传文件了,我正在努力解决这个问题。
只需从中使用新的jquery库jquery-2.1.1.min.js
http://jquery.com/download/
它一定能解决你的问题。几天前,我遇到了同样的问题,所以我尝试了上面的库,它确实对我有效。
您不能通过ajax发送文件,您必须直接使用PHP才能发送。