【发布时间】:2017-12-16 14:49:49
【问题描述】:
我们在 HTML 页面中显示用户的详细信息,除了其他详细信息之外,它还包含一个链接项,该链接项从数据库中检索存储为用户 BLOB 的图像。我们编写了 Angular 服务,单击链接项将打开一个显示图像的浏览器窗口(实际上是数据库中该图像的文件名)。存储和检索图像都可以正常工作现在我们的要求是在第一次加载 HTML 页面时将图像作为预览加载。
Angular 服务就像
getDownloadDoc: function(empId) {
return $http.get(contextPath1 + "/PdfServletDoc?documentID=" + empId + "", {
responseType: 'arraybuffer'
}).then(function(response) {
var data = response.data;
var file = new Blob([data], {
type: 'image/jpeg'
});
var fileURL = URL.createObjectURL(file);
window.open(fileURL);
return response;
});
},
我是 AngularJs 的新手,如果只能获取资源或文档来寻找这个。这会很有帮助
【问题讨论】:
-
不生成 Blob 而是对 base64 执行 arraybuffer;然后添加 data:image/jpeg;base64,responsestring 当您将其作为图像标签的 src 时,将为您提供正确的图像。参考:stackoverflow.com/questions/9267899/…。对于下载,只需使用与数据相同的响应字符串:application/octate-stream;base64,responsestring
标签: javascript angularjs blob