[英]Why does my redirect is not working?
我的脚本将我的重定向函数调用到早期,因此批量上传的最后一个文件失败。 整个上午,我一直在寻找尝试过的不同方法,但是没有成功。
function uploadFile(something, callback) {
var fileInput = $('#fileList1');
//var reader = new FileReader();
console.log(fileInput);
if ( trim( fileInput.val() ).length == 0 ) {
return;
}
var fileList = [];
count = fileInput[0].files.length;
for(i = 0; i < count; i++){
loadFile(fileInput[0].files[i]);
}
function loadFile(file){
var reader = new FileReader();
var fileName = getFileNameWithExtension( file);
var file = file;
while(reader.onprogress){
console.log("reading");
}
reader.onload = function(event) {
var val = reader.result;
var text = val.split(',')[1];
saveFile( fileName, text, parentId );
if (!--count){
redirect();
}
}
reader.onerror = function(event) {
console.error("File could not be read! Code " + reader.error.message);
}
reader.readAsDataURL(file);
}
}
function redirect(){
window.location.href = '/{!tempID}';
return false;
}
有人可以给我提示吗?
#您好,我已根据您的建议重新编写了我的方法。 但是重定向仍被调用到早期,...在所有上传完成之前。
function uploadFile() { var fileInput = $('#fileList1'); console.log(fileInput); if ( trim( fileInput.val() ).length == 0 ) { return; } var countTwo = 0; count = fileInput[0].files.length; for(var i = 0; i < count; i++){ loadFile(fileInput[0].files[i], function(val){ console.log(val); if(val === 3){ setTimeout(()=>{redirect();}, 5000); } }); } function loadFile(file, callback){ var reader = new FileReader(); var fileName = getFileNameWithExtension( file); var file = file; while(reader.onprogress){ console.log("reading"); } reader.onload = function(event) { var val = reader.result; var text = val.split(',')[1]; saveFile( fileName, text, parentId ); console.log(" ct " + countTwo + " c " + count-1); countTwo++; if(!--count) callback(countTwo); } reader.onerror = function(event) { console.error("File could not be read! Code " + reader.error.message); } reader.readAsDataURL(file); } }
方法1:(推荐)
检测您的上传何时结束。 然后在该回调中,调用重定向。
方法2:
// define your TIMEOUT first
setTimeout(()=>{redirect();}, TIMEOUT);
reader.onload = function(event) {
var val = reader.result;
var text = val.split(',')[1];
saveFile( fileName, text, parentId );
if (!--count){
setTimeout(()=>{redirect();}, 0);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.