在AJAX上传文件时,在完成上传过程之前不应刷新页面,因为它会中断上传并导致失败。应该使用AJAX轮询技术来检查上传的进度,以便在上传完成后自动刷新页面或回调函数来通知用户。
以下是基于jQuery框架的示例代码:
function sendFile() {
var formData = new FormData($("#fileForm")[0]);
$.ajax({
url: "upload.php",
type: "POST",
data: formData,
processData: false,
contentType: false,
success: function(response) {
// Handle success response
},
xhr: function() {
var xhr = new window.XMLHttpRequest();
xhr.upload.addEventListener("progress", function(evt) {
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
// Update progress bar or inform user of progress
}
}, false);
return xhr;
}
});
setInterval(function() {
$.ajax({
url: "check_upload_progress.php",
type: "GET",
success: function(response) {
if (response == "complete") {
location.reload(); // Reload page when upload is complete
}
}
});
}, 5000); // Poll for upload progress every 5 seconds
}