javascript - Blob 上传到 Azure 失败并出现 "Invalid HTML File Object"错误

标签 javascript azure azure-storage

我正在使用 Azure JS 库上传 blob。下面是我写的代码。

        var speedSummary = blobService.createBlockBlobFromBrowserFile(container, fileList[i]["FileID"], selectedFiles[i], options, function (error, result, response) {
        finishedOrError = true;
        if (error) {
            //Handle errors in upload
            console.log(error);
            alert("upload failed for " + selectedFiles[i].name);
        } else {
            //Handle success
            //Trigger postback to save the file list to database.
            uploadedFiles++;
            triggerPostBack(uploadedFiles);
        }
    });

这段代码直到上周都工作正常,因为我测试了它。现在,它每次都会失败,并出现错误“无效的 HTML 文件对象”。

我尝试通过azure js库进行调试,找到了发生错误的地方。

if (!azureutil.isBrowser() ||
!browserFile ||
!browserFile.constructor ||
(!azureutil.isIE() && !browserFile.constructor.name) ||
(!azureutil.isIE() && browserFile.constructor.name !== 'File' && browserFile.constructor.name !== 'Blob') ||
!azureutil.objectIsInt(browserFile.size)) {
return fail(new ArgumentError('type', 'Invalid HTML File object.'));
} else {
callback();
return true;
}

由于某种原因,这个条件总是失败。我尝试禁用此条件,然后在 azure js 库的后面部分中,我在分块过程中收到另一个错误,指出“切片不是函数”。

我不知道为什么这段代码突然失败,因为它直到周末都工作正常。我检查了文件列表,它们似乎是具有所有相关属性的正确文件对象。

最佳答案

显然,它与 azure js 库无关。实际文件对象是新 json 对象的一部分,其中包含其他属性,例如文件的完整路径。更改以下行以获取实际的 HTML 文件对象。

var speedSummary = blobService.createBlockBlobFromBrowserFile(container, fileList[i]["FileID"], selectedFiles[i].fileObject, options, function (error, result, response) 

关于javascript - Blob 上传到 Azure 失败并出现 "Invalid HTML File Object"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52035618/

相关文章:

javascript - React - 箭头函数与 bind() 和带参数的事件

.net - .net core 6 中长时间运行的函数

azure - Microsoft Azure 付款选项

java - 在 Windows Azure 中为 Java Web 应用程序使用缓存

javascript - 如何将当前月份日期更改为另一个月份

javascript - D3 : Multiple Values on Y-Axis

javascript - AngularJS 绑定(bind)不更新模型

azure - Microsoft Azure 文本识别边界框响应中的 (X,Y) 坐标是什么单位?

azure - 在控制台中运行 webjob 可以工作,但在 Azure 上抛出异常 : The remote name could not be resolved: 'xxx.queue.core.windows.net'

Azure-一驱动器传输