将图像保存到Webkit和Gecko中的blob
save image to blob in webkit and gecko
我需要通过ajax下载图像文件,将其保存到blob中,稍后显示在图像标签中。在我正在使用的网络工具包中
var xhr = new XMLHttpRequest();
var imgSrc = "test.jpg";
xhr.responseType = 'arraybuffer';
xhr.open("GET", imgSrc, true);
xhr.onload = function (oEvent) {
console.log('onload1');
var blob = new Blob([xhr.response], {type: "image/jpg"});
console.log(blob.size);
var img = document.createElement('img');
img.onload = function() {
console.log('onload2');
document.body.appendChild(img);
}
img.onerror = function() {
console.log('error');
}
img.src = webkitURL.createObjectURL(blob);
}
xhr.send(null);
图像大小为 43312,blob 大小为 43312。图像显示正确,到目前为止一切顺利。现在让我们转到壁虎:
首先,我卡在xhr.responseType = 'arraybuffer'上;出于某种原因,Firefox 只接受 'arrayBuffer' 而不接受 'arraybuffer'。这很令人困惑,因为根据 https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest?redirectlocale=en-US&redirectslug=DOM%2FXMLHttpRequest 的说法,壁虎也应该接受数组缓冲区。
然后我用URL替换webkitURL。已下载映像,创建了 blob,但大小为 77978 且映像放置失败(显然,映像数据已损坏)。
好的,谜团解开了。
在 Firefox 中,你需要先做 xhr.open,然后你可以将 responseType 设置为 arraybuffer。
相关文章:
- 无法从 jQuery RSS Feed 中的 localStorage 动态替换类
- 可以't让我的if语句处理js中的html表单输入
- 引用对象中的通用值
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 用程序搜索JQuery数据表中的文本
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- 不能从angular2中的子组件指定父组件中的数组
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 正在验证8个真/假复选框或复选框中的2个
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 如何更改bigquery API中的计费层选项
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 拨打'父亲'函数形式a'儿童'ReactJS中的组件
- 我如何找到一个句子中的所有空格并替换忽略它们
- zurb基础中的固定宽度立柱3
- 将图像保存到Webkit和Gecko中的blob