前端拿到图片数据流无法显示问题

       一般来说我们会通过图片动态绑定url地址,去显示图片。前端在接收到后端返回的二进制数据量后会通过blob的形式去创建临时url显示图片。

后端部分代码

// 调用工具类返回二维码数据流
            BufferedImage codeStream = QRCodeUtil.createCodeToOutputStream(codeContent);
            ServletOutputStream outputStream = response.getOutputStream();
            ImageIO.write(codeStream, "png", outputStream);
            // 关闭资源
            outputStream.close();

            response.setContentType("image/png");
            response.setStatus(200);

*前端请求部分(这里必须加上 responseType: "blob")不然虽然前端可以拿到数据流,但是会无法显示。

import request from "@/utils/request";

export function getQRCode(params) {
  return request({
    url: "/QR-Code",
    method: "get",
    responseType: "blob", // 指定响应类型为 Blob
    params,
  });
}

vue.js

        getQRCode({ codeContent: this.codeContent }).then((res) => {
          var blob = new Blob([res.data]);

          this.qrCodeUrl = URL.createObjectURL(blob);
        });
   <el-image :src="qrCodeUrl" id="codeImg" v-if="qrCodeUrl" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值