Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 精细上传器异步任务在Chrome中工作,但在IE11中不工作_Javascript_Internet Explorer 11_Fine Uploader_Fileapi - Fatal编程技术网

Javascript 精细上传器异步任务在Chrome中工作,但在IE11中不工作

Javascript 精细上传器异步任务在Chrome中工作,但在IE11中不工作,javascript,internet-explorer-11,fine-uploader,fileapi,Javascript,Internet Explorer 11,Fine Uploader,Fileapi,我使用运行md5签入提交回调来防止已经存在的文件再次上传,它在chrome中工作,但在IE11中不工作。是IE bug还是我做错了?我如何修复它?谢谢。 以下是脚本: $("#uploader").fineUploader({ request: { endpoint: 'home/upload' }, multiple: true, autoUpload: false, debug: true, chuncking: {

我使用运行md5签入提交回调来防止已经存在的文件再次上传,它在chrome中工作,但在IE11中不工作。是IE bug还是我做错了?我如何修复它?谢谢。 以下是脚本:

 $("#uploader").fineUploader({
    request: {
        endpoint: 'home/upload'
    },
    multiple: true,
    autoUpload: false,
    debug: true,
    chuncking: {
        enabled:true
    },
    editFilename: {                                            
        enable: true
    },
    validation: {
        sizeLimit: 1073741824
    }
}).on({                                                      
    "complete": function (event, id, fileName, responseJSON) { 
        if (responseJSON.success) {
            alert("upload success");
        }
    },
    "validate": function (event,data) {

    },
    "submit": function (event,id, fileName) {             

        var promise = new qq.Promise();
        var file = $(this).fineUploader('getFile', id);
        var freader = new FileReader();
        validateMD5(file, freader,promise);
        return promise;
    },

    "error": function (event, id, fileName, reason) {
        alert(reason);
    }
});



$("#uploadButton").click(function () {
    $('#uploader').fineUploader('uploadStoredFiles');
});
function validateMD5(file, reader,promise) {

    var blobSlice = File.prototype.mozSlice || File.prototype.webkitSlice || File.prototype.slice;
    var spark = new SparkMD5();
    var chunkSize = 2097152;
    var chunks = Math.ceil(file.size / chunkSize);
    var currentChunk = 0;
    var start1 = 0;
    var end1 = chunkSize >= file.size ? file.size : chunkSize;
    reader.readAsBinaryString(blobSlice.call(file, start1, end1));
    reader.onload = function (e) {
        spark.appendBinary(e.target.result);
        currentChunk++;
        if (currentChunk < chunks) {
            var start = currentChunk * chunkSize;
            var end = start + chunkSize >= file.size ? file.size : start + chunkSize;
            reader.readAsBinaryString(blobSlice.call(file, start, end));
        } else {
            var md5 = spark.end();
            var r = checkMd5Onserver(md5);
            if (r == true) {
                promise.success();
            } else {
                promise.failure();
            }
        }

    };
}

function checkMd5Onserver(md5) {
    return false;//just for test
}
$(“#上传器”).fineUploader({
请求:{
端点:“主页/上载”
},
多重:对,
自动上载:false,
是的,
胡克:{
已启用:true
},
编辑文件名:{
启用:true
},
验证:{
sizeLimit:1073741824
}
}).on({
“完成”:函数(事件、id、文件名、响应){
if(responseJSON.success){
警报(“上传成功”);
}
},
“验证”:功能(事件、数据){
},
“提交”:函数(事件、id、文件名){
var promise=新qq.promise();
var file=$(this).fineUploader('getFile',id);
var freader=new FileReader();
validateMD5(文件、文件、承诺);
回报承诺;
},
“错误”:函数(事件、id、文件名、原因){
警惕(原因);
}
});
$(“#上载按钮”)。单击(函数(){
$('#uploader').fineUploader('uploadStoredFiles');
});
函数validateMD5(文件、读取器、承诺){
var blobSlice=File.prototype.mozSlice | | | File.prototype.webkitSlice | | File.prototype.slice;
var spark=新SparkMD5();
var chunkSize=2097152;
var chunks=Math.ceil(file.size/chunkSize);
var-currentcunk=0;
var start1=0;
var end1=chunkSize>=file.size?file.size:chunkSize;
reader.readAsBinaryString(blobSlice.call(file,start1,end1));
reader.onload=函数(e){
spark.appendBinary(如target.result);
currentChunk++;
如果(当前块<块){
var start=currentChunk*chunkSize;
var end=start+chunkSize>=file.size?file.size:start+chunkSize;
reader.readAsBinaryString(blobSlice.call(file,start,end));
}否则{
var md5=spark.end();
var r=checkMd5Onserver(md5);
如果(r==true){
承诺,成功;
}否则{
承诺。失败();
}
}
};
}
功能检查MD5ONServer(md5){
返回false;//仅用于测试
}

在我的代码中,我使用FileReader.readAsBinaryString()方法读取文件,IE11不再支持它。有关更多详细信息,请参见和

您几个小时前刚刚问过这个问题。它得到了很好的答复和有用的评论。发生了什么事?我在那个问题上输入了一些错误的代码,@jfriend00指出,我不应该编辑我的问题,只是将其更改为其他问题。@jfriend00要求我删除该问题并开始一个新问题。。我仍然不知道为什么它在chrome中有效,但在ie中无效?我只是发现这是因为IE11不再支持FileReader.readAsBinaryString()嗯,看起来这个方法已经从规范中删除了。我自己也不知道。请将您的发现作为答案发布。