//----显示图片,将buffer转为base64就行了
var src = 'data:image/jpeg;base64,' + this.arrayBufferToBase64(originBuffer);
<img
style="width: 300px;height:300px;"
:src="src"
alt=""
/>
//arrayBuffer转Base64
arrayBufferToBase64 (buffer) {
var binary = ''
var bytes = new Uint8Array(buffer)
var len = bytes.byteLength
for (var i = 0; i < len; i++) {
binary += String.fromCharCode(bytes[i])
}
return window.btoa(binary)
},
//----下载图片到本地,要先将buffer转成base64再转blob文件
//点击下载图片
download(fileName, content){//fileName是文件名,contont是base64数据流
let aLink = document.createElement('a');
let blob = this.base64ToBlob(content); //new Blob([content]);
let evt = document.createEvent("HTMLEvents");
evt.initEvent("click", true, true);//initEvent 不加后两个参数在FF下会报错 事件类型,是否冒泡,是否阻止浏览器的默认行为
aLink.download = fileName;
aLink.href = URL.createObjectURL(blob);
aLink.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));//兼容火狐
},
// base64转blob
base64ToBlob(data) {
let arr = data.toString().split(',');
let mime = arr[0].match(/:(.*?);/)[1];
let bStr = window.atob(arr[1]);
let n = bStr.length;
let u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bStr.charCodeAt(n);
}
return new Blob([u8arr], {type: mime});
},
vue前端显示buffer类型的图片,点击下载到本地
最新推荐文章于 2024-05-09 19:38:25 发布