这是我的javascript代码。我想要的是在运行此循环后,我想将页面重新加载到其他页面。但是,下面的代码甚至在我的数据发送之前重新加载页面。
编辑:我按要求将发送文件添加到服务器代码
function handleFileUpload(files,obj)
{
for (var i = 0; i < files.length; i++)
{
var fd = new FormData();
fd.append('file', files[i]);
fd.append( 'date_taken', files[i].lastModifiedDate )
var status = new createStatusbar(obj,files[i]);
//Using this we can set progress.
status.setFileNameSize(files[i].name,files[i].size);
sendFileToServer(fd,status);
}
location.reload()
}
function sendFileToServer(formData,status)
{
var uploadURL ="<?php echo base_url('test/upload'); ?>"; //Upload URL
var extraData ={}; //Extra Data.
var jqXHR=$.ajax({
xhr: function() {
var xhrobj = $.ajaxSettings.xhr();
if (xhrobj.upload) {
xhrobj.upload.addEventListener('progress', function(event) {
var percent = 0;
var position = event.loaded || event.position;
var total = event.total;
if (event.lengthComputable) {
percent = Math.ceil(position / total * 100);
}
//Set progress
status.setProgress(percent);
}, false);
}
return xhrobj;
},
url: uploadURL,
type: "POST",
contentType:false,
processData: false,
cache: false,
data: formData,
success: function(data){
status.setProgress(100);
$("#status1").append("File upload Done<br>");
}
});
status.setAbort(jqXHR);
}
答案 0 :(得分:0)
Javascript是异步的,这意味着它继续执行代码,即使请求发送到某个地方,你必须等到文件上传,因为你发送ajax调用时使用Jquery ajax,你可以处理它与 .done (这意味着请求已经完成)现在你准备好接下来的行动了,在你重新加载的情况下,或者希望这对你有所帮助。