由于某种原因,我的上传表单无效,当我提交表单时,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";
}
?>
这可能与服务器有关吗?已经有一个论坛上传,其本身允许上传,所以我不认为是这种情况,但我不确定。
谢谢!
编辑:伙计们,感谢您的链接,但您现在可以使用HTML5和XmlHttpRequest2对象上传文件,我正试图弄明白。
答案 0 :(得分:-2)
只需使用http://jquery.com/download/
中的新jquery库jquery-2.1.1.min.js
即可
这肯定会解决你的问题。几天前我遇到了同样的问题,所以我尝试了上面的库,它确实适合我。
答案 1 :(得分:-3)
你不能通过ajax发送文件,你必须直接使用PHP来做到这一点。