一、问题描述
1.1需求描述。
前端将浏览器展示的图片以base64编码的形式传递给后端,以此实现文件下载的功能,在浏览器弹出文件下载框。效果如下
1.2实现思路
将前端传递的base64进行解码,设置响应头返回响应体,代码如下。
public ResponseEntity<byte[]> downloadQrCode(String qrCode, HttpServletResponse response) {
try {
// 解码Base64字符串为字节数组
byte[] imageBytes = Base64.decode(qrCode);
// 设置响应头
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_JPEG); // 设置文件类型为JPEG
headers.setContentDispositionFormData("attachment", "image.jpg"); // 设置文件名
// 返回图片字节数组作为响应体
return new ResponseEntity<>(imageBytes, headers, HttpStatus.OK);
} catch (Exception e) {
e.printStackTrace();
// 处理解码异常
return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
}
}
错误的示范
如果GET请求传递base64数据过大,可以参考请求头携带数据过大导致报错
如果以上步骤仍然不能解决:可以联系
Email:eternally_zh128@sina.com QQ:3280437418
编辑不易,转载请注明出处,接java简历修订,模拟面试,毕业项目等。。。