0

您好我正在使用 JS HTML5 File API 来处理文件上传到我的服务器。

我在 Aurora 中收到以下错误(Fire Fox Bleeding edge builds)

NS_ERROR_INVALID_POINTER: Component returned failure code: 0x80004003 (NS_ERROR_INVALID_POINTER) [nsIDOMFileReader.readAsBinaryString]

function readBlob(opt_startByte, opt_stopByte,file,partNo) {

    var start = parseInt(opt_startByte);
    var stop = parseInt(opt_stopByte);
    var reader = new FileReader();

    var totalParts = parseInt(file.size/MAX_READ);
    if((file.size % MAX_READ) !== 0){
        totalParts++;
    }
    // If we use onloadend, we need to check the readyState.
    reader.onloadend = function(evt) {
        if (evt.target.readyState == FileReader.DONE) {
            //var contents =  reader.result;
            postFilePart(partNo,contents,totalParts,escape(file.name))// DONE == 2
        }
    };
    if (file.webkitSlice) {
        var blob = file.webkitSlice(start, stop);
    } else if (file.mozSlice) {
        var blob = file.mozSlice(start, stop);
    }
    reader.readAsBinaryString(blob);
}

错误发生在这一行

reader.readAsBinaryString(blob);

我试过 mozSlice 和 Slice

if (file.mozSlice) { var blob = file.mozSlice(start, stop); }

它给了我同样的结果。使用 HTML 5 API 可能不是最好的主意,因为这也可能导致其他浏览器出现问题。

有没有人有办法获得相同的功能或者我如何解决这个特定的错误

4

1 回答 1

0

解决了由于调用方法错误导致读取器代码参数错误而重新运行的问题

https://bugzilla.mozilla.org/show_bug.cgi?id=725289

宁可使用 slice 与 mozSlice

于 2012-07-24T10:59:17.570 回答