我正在尝试使用AJAX和HTML5来处理从客户端计算机到服务器上的文件夹的文件上传。
现在alert
消息下面除了success
功能从未得到执行,我不知道为什么。我没有得到任何JS错误。php脚本和保存文件的文件夹都被授予完整的读/写权限。
对我来说,在没有看到任何错误的情况下让这个工作是非常困难的。
我感谢任何帮助,以确定这个问题的原因,并得到一些错误或至少警报消息执行。
提前感谢!
JQuery $.ajax({
url: 'upload.php', //server script to process data
type: 'POST',
xhr: function() { // custom xhr
myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){ // check if upload property exists
myXhr.upload.addEventListener('progress',progressHandlingFunction, false); // for handling the progress of the upload
}
return myXhr;
},
//Ajax events
success: function(data){
alert("OK");
$('body').html(data);
},
// Form data
data: formData,
//Options to tell JQuery not to process data or worry about content-type
cache: false,
contentType: false,
processData: false
});
HTML <form enctype="multipart/form-data">
<input name="file" type="file" />
<input type="button" value="Upload" />
</form>
<progress></progress>
upload.php
<?php
if ($_FILES["file"]["name"] != NULL) {
if (file_exists("uploads/" . $_FILES["file"]["name"]))
echo $_FILES["file"]["name"] . " already exists. ";
else
move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);
}
?>
添加一个错误处理程序。
$.ajax({
success: function(data){
console.log("OK");
$('body').html(data);
},
error: function(xhr, textStatus, errorThrown){
console.log('An error has occurred!');
console.log(textStatus);
console.log(errorThrown);
}
});
Javascript不会为失败的ajax请求抛出任何错误,所以您需要自己捕获它们。