我想使用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"]);
}
?>
稍微不相关,尝试使用关键字“调试器;”在Chrome浏览器旁边的JS文件中。当它击中关键字并让你看到发生了什么时,它会停止执行。否则在诊断XHR时,complete:function(){}钩子可能是另一个有用的点,因为总是调用complete。 – David 2013-03-13 00:39:50
您没有错误处理程序。按照文档http://api.jquery.com/jQuery.ajax/中的描述创建一个'error:function(){}'错误回调并且始终在打开浏览器控制台的情况下开发JavaScript。观看XRH并在浏览器开发工具的网络部分检查其响应。 – 2013-03-13 00:39:56
您是否尝试过使用开发人员工具进行调试? – j08691 2013-03-13 00:40:56