在服务器上有存储文件的url。 网址 http://website.com/abc 我在这个网址上打了$ http。
$http.get(url, { responseType: "arraybuffer" });
我想从中创建Blob对象。我确信该对象的类型为png,因为它在上传之前有这个扩展名,并且显示正确。
new Blob(result.data, {type: "image/png"});
我收到消息: 无法构造'Blob':第一个参数既不是数组,也不是索引属性。
来自服务器http://website.com/abc的响应开发人员控制台中的GET如下所示:
ÿØÿàJFIFÿþ;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 60
ÿÛC
' .)10.)-,3:J>36F7,-@WAFLNRSR2>ZaZP`JQROÿÛC&&O5-5OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOÿÂÒ"ÿÄÿÄÿÚæå2ag\Ý#úDê3[Zdfc5±Ô¢¬æ)K<`¤l2¸ÊánYR±aA`Í%RÈfbz!¤tÞÑ-µd7ZªÀ[hz¨f¥>©cAV¬{3á R³F0 W>~c³"ðÈìøÖ²ÇBÙ³±+
½ò9tµ°õ
我尝试将Blob类型设置为application / octet-stream,并且还在没有指定responseType的情况下执行$ http.get。
如何创建正确的Blob文件? 我需要Blob File来创建File对象,它是实现逻辑的入口数据,用于以幻灯片形式显示带有模态的文件。我已经为File类型的文件实现了逻辑,这些文件是由输入表单创建的 - 在上传到服务器之前已经完成了实现。现在事实证明服务器不会向我返回相同的文件,但只返回文件的URL,这创建了一个从url转换为File的想法,以便不再重复该逻辑。
答案 0 :(得分:9)
尝试
$http.get(url, { responseType: "blob" });
或
// missing `[]` at `js` at Question
new Blob([result.data], {type: "image/png"});
注意XMLHttpRequest
responseType
也可以设置为"blob"
,请参阅How to build PDF file from binary string returned from a web-service using javascript