一、问题描述
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); // 设置文件类型为JPEGheaders.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简历修订,模拟面试,毕业项目等。。。