繁体   English   中英

为什么我的重定向不起作用?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM