Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.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 为什么我得到blob.Slice/blob.webkitsicle不是一个函数错误?_Javascript_Slice - Fatal编程技术网

Javascript 为什么我得到blob.Slice/blob.webkitsicle不是一个函数错误?

Javascript 为什么我得到blob.Slice/blob.webkitsicle不是一个函数错误?,javascript,slice,Javascript,Slice,嗨,友好和乐于助人的人们 我根本不是Web开发人员,但不幸的是,我现在必须使用HTML/JavaScript/ASP.net。我需要一个上传器,它会在上传之前分割要上传的文件,由于文件大小的原因 我在网上找到了解释并尝试使用它。当然,我编辑了一点。我的JavaScript现在看起来像这样: function upload(file) { var blob = file; var BYTES_PER_CHUNK = 1000000; // sample chunk sizes.

嗨,友好和乐于助人的人们

我根本不是Web开发人员,但不幸的是,我现在必须使用HTML/JavaScript/ASP.net。我需要一个上传器,它会在上传之前分割要上传的文件,由于文件大小的原因

我在网上找到了解释并尝试使用它。当然,我编辑了一点。我的JavaScript现在看起来像这样:

function upload(file) {
    var blob = file;
    var BYTES_PER_CHUNK = 1000000; // sample chunk sizes.
    var SIZE = blob.size;

    //upload content
    var start = 0;
    var end = BYTES_PER_CHUNK;
    var completed = 0;
    var count = SIZE % BYTES_PER_CHUNK == 0 ? SIZE / BYTES_PER_CHUNK : Math.floor(SIZE / BYTES_PER_CHUNK) + 1;

    while (start < SIZE) {
        var chunk = blob.Slice(start, end); // doesn't matter if use mozSlice/webkitSlice, same error

        var xhr = new XMLHttpRequest();
        xhr.onload = function () {
            completed = completed + 1;
            if (completed === count) {
                uploadComplete();
            }
        };
        xhr.open("POST", "/ItemTracking/MultiUpload", true);
        xhr.send(chunk);

        start = end;
        end = start + BYTES_PER_CHUNK;
    }
}
函数上传(文件){
var blob=文件;
var BYTES_PER_CHUNK=1000000;//示例块大小。
变量大小=blob.SIZE;
//上传内容
var start=0;
var end=每个块的字节数;
var完成=0;
var count=SIZE%BYTES\u PER\u CHUNK==0?SIZE/BYTES\u PER\u CHUNK:Math.floor(SIZE/BYTES\u PER\u CHUNK)+1;
while(开始<大小){
var chunk=blob.Slice(开始,结束);//如果使用mozSlice/webkitSlice,则无所谓,相同的错误
var xhr=new XMLHttpRequest();
xhr.onload=函数(){
已完成=已完成+1;
如果(已完成===计数){
上传完成();
}
};
xhr.open(“POST”,“/ItemTracking/MultiUpload”,true);
发送(块);
开始=结束;
结束=开始+每个块的字节数;
}
}

单击按钮时将调用multiUpload()(在下面的代码块中)。到目前为止,它是有效的。但每次我都会发现blob.Slice/blob.webkitSlice不是函数的错误。有什么想法吗?我做错了什么?文件是一个HTML输入文件(多个)元素。JavaSript总是让我心烦|

function multiUpload()
{
    var files = document.getElementById('file').files;
    var i;

    for (i = 0; i < files.length; ++i) {
        upload(files[i]);
    }
}
函数multiUpload() { var files=document.getElementById('file').files; var i; 对于(i=0;i您需要
blob.slice
(小写)。特定于浏览器的方法现已收回。以打字错误的方式结束这篇文章。谢谢。没想到会这样,因为我不知道JavaScript在任何方面都是区分大小写的。