JAVA 返回base64 图片数据 前端uniapp 接收

1.java部分:

    @GetMapping("/downLoadWarrantyOrderImage")
    public String  downLoadWarrantyOrderImage(String phone, HttpServletResponse response) throws IOException {
        //从数据库查询出数据
        WarrantyOrderVo byPhone = warrantyOrderService.getByPhone(phone);

        //将数据填充到html字符串中 ,然后将html代码转换为图片 , 注意
        //这里是该项目业务需要,用任意的图片都跨域
        HtmlImageGenerator imageGenerator = new HtmlImageGenerator();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String createTime = formatter.format(byPhone.getCreateTime());

        String htmlTemplate = new WarrantyOrder().init(byPhone.getCode(),
                byPhone.getName(),
                byPhone.getAddress(),
                byPhone.getPhone(),
                createTime,
                byPhone.getServiceOrderCode());

        imageGenerator.loadHtml(htmlTemplate);

        //生成图片,将图片转为base64格式返回
        BufferedImage bufferedImage = imageGenerator.getBufferedImage();
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();

        ImageIO.write(bufferedImage,"png",byteArrayOutputStream);
        byte[] imageBytes = byteArrayOutputStream.toByteArray(); // 读取图片数据的字节数组
        // 将图片字节数组转换为Base64编码的字符串
        String base64Image = Base64.getEncoder().encodeToString(imageBytes);
        return base64Image;
    }

2.uniapp 部分:

注意 如果返回的是blob格式的图片 , 需要设置  responseType:'arraybuffer' , base64则不需要

uni.request({
			url: '...',
			data: {
				...
			},
			success: (res) => {

				let imageUrl =res.data

				imgSrc.value='data:image/png;base64,'+imageUrl
			}
		})

3.注意 微信浏览器不支持 blob格式的图片 长按保存,base64格式的图片则可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值