vue:前端接收并展示后端返回的一个图片对象(文件流)

需求:

前端接收并展示后端返回的一个图片对象(文件流),没有图片的时候,显示默认图片。

1. HTML

造空间,展示图片

	<div id="qrcode" class="qrcodeBox" ><img :src="qrcodeSrc"/>div>

2. 定义变量

这里require的作用是设置默认图片。

 	data () {return {qrcodeSrc: require('@/assets/images/img_empty.png')}},

3. 定义请求的接口

重点是添加 responseType: 'blob',表明这是个blob对象。

不加这个类型,会报错TypeError: Failed to execute 'readAsText' on 'FileReader': parameter 1 is not of type 'Blob'.

(定义接口的形式类似,取决于自己如何封装接口)

  getQrcode: {url: '/xxxxxx/qrcode',	// 请求接口的路径method: 'get',			// 请求方法responseType: 'blob',		// response类型params: {}				// 入参},

4. 请求接口并赋值

URL.createObjectURL() 静态方法会创建一个 DOMString,其中包含一个表示参数中给出的对象的URL。这个 URL 的生命周期和创建它的窗口中的 document 绑定。这个新的URL 对象表示指定的 File 对象或 Blob 对象。

getData() {this.Api.getQrcode({	// 请求刚刚定义的接口params: {			// 入参name: '奶绿走糖',id: '9999'}}).then(res=>{			// 获取返回参数reslet url = window.URL.createObjectURL(res.data);		// 获取对象urlthis.qrcodeSrc = url	// 给变量赋值})
}

另一种写法

async getData() {	let params = {name: '奶绿走糖',id: '9999'}let res = await this.Api.getQrcode(params)			// 获取后盾返回的参数reslet url = window.URL.createObjectURL(res.data);		// 获取返回参数中的需要的值datathis.qrcodeSrc = url								// 把获取到的值,赋值给变量qrcodeSrc
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部