繁体   English   中英

上传后Azure存储损坏了文件吗?

[英]Azure storage is corrupting files after upload?

我正在尝试将图像上传到Azure存储中,如下所示:

var xhr = new XMLHttpRequest();
xhr.open("GET", blobUrl);
xhr.responseType = "text";//force the HTTP response, response-type header to be blob
xhr.onload = function () {
    blobService.createBlockBlobFromText('taskcontainer', 'myblob', xhr.responseText,  {contentSettings: {contentType: "image/bmp"}}, (error, result, response)=>{
    })
}
xhr.send();

如果我上传带有abc的文本文件之类的简单文件,它可以上传,但是如果我尝试上传诸如图像的文件,它似乎已损坏,则diff在文件上传到天蓝色(左)之后和之前显示差异已上传: https : //user-images.githubusercontent.com/2121021/35678518-cb006af4-07a7-11e8-963d-2bb8b45aba26.png

我不确定到底发生了什么,并且已经尝试解决了一段时间……

好了,当您通过XMLHttpRequest对象接收二进制数据时,需要将responseType设置为arraybuffer

var xhr = new XMLHttpRequest();
xhr.open("GET", blobUrl);
xhr.responseType = "arraybuffer";
xhr.onload = function () {
    blobService.createBlockBlobFromText('taskcontainer', 'myblob', new Uint8Array(xhr.response),  {contentSettings: {contentType: "image/bmp"}}, (error, result, response) => {
    })
}
xhr.send();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM