将Blob上传到Azure失败,并显示“无效的HTML文件对象”错误

时间:2018-08-27 08:46:36

标签: javascript azure azure-storage

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

89 101 101 116 115" "

由于我进行了测试,因此该代码在上周之前都可以正常工作。现在,它每次都会失败,并显示错误“无效的HTML文件对象”。

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

        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);
        }
    });

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

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

对于以相同错误登陆此处的任何人。 在我的有角度的应用程序中,我将属性(uploadedFile)绑定到type =“ file”的输入。 但是,该属性保存的是文件列表,而不是一个文件。

在这种情况下,请确保仅传递一个文件:

var result = blobService.createPageBlobFromBrowserFile('container', uploadedFile[0].name, uploadedFile[0], options, error => this.callback(error));