HTML 5文件API 0x80004003

时间:2012-07-24 08:23:14

标签: javascript html5 file

您好我正在使用JS HTML5文件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的最佳选择,因为这可能会导致其他浏览器出现问题。

是否有人有解决此特定错误的工作方法

1 个答案:

答案 0 :(得分:0)

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

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

而是使用slice vs mozSlice