一般情况下下载的接口是没有返回值的,直接返回一个文件
浏览器直接触发文件下载
但是有一些奇葩需求,除了文件外还需要一些其他字段返回。这个时候就只能把文件转成字符串返回,然后再由前端做下载或者展示
后台获取字符 byte[]
byte[] body = HttpUtil.downloadBytes(ooxxurl+ params);
前端的转换代码如下
<template><div><img :src="imageUrl" alt="展示的图片" /></div>
</template><script>
export default {data() {return {imageUrl: '',byteArrayString: returnByte[]};},mounted() {this.convertByteArrayToImageUrl();},methods: {convertByteArrayToImageUrl() {// 解析字节数组字符串为真正的字节数组const byteArray = JSON.parse(this.byteArrayString);const uint8Array = new Uint8Array(byteArray);// 创建 Blob 对象const blob = new Blob([uint8Array], { type: 'image/png' });// 生成图片 URLconst url = URL.createObjectURL(blob);this.imageUrl = url;}}
};
</script>