前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springboot巧妙的处理图片

springboot巧妙的处理图片

作者头像
用户10125653
发布2022-11-10 21:51:10
4350
发布2022-11-10 21:51:10
举报
文章被收录于专栏:change

将图片插入mysql数据库

代码语言:javascript
复制
  @PostMapping
  public R<Boolean> insert(@NotNull @RequestParam MultipartFile picture,String type) {
        try {
            QualityAnalysis qualityAnalysis=new QualityAnalysis();
            byte[] bytes = picture.getBytes();
            qualityAnalysis.setData(bytes);
            qualityAnalysis.setType(type);
            return success(this.qualityAnalysisService.save(qualityAnalysis));
        } catch (IOException e) {
            e.printStackTrace();
        }
        return success(null);
    }

浏览器展示图片

代码语言:javascript
复制
  @RequestMapping(value = "/picture",method = RequestMethod.GET,produces = MediaType.IMAGE_PNG_VALUE)
    public byte[] getPicture(Integer id){
        QualityAnalysis qualityAnalysis = this.qualityAnalysisService.getById(id);
        return qualityAnalysis.getData();
    }

浏览器下载图片

代码语言:javascript
复制
  @GetMapping("/write")
    public void writeBpa(Long planId, HttpServletResponse response) {
        try {
            BpaBo bpaBo = this.planService.writeBpa(planId);
            // 清空response
//            response.reset();
            // 设置response的Header
            response.setCharacterEncoding("UTF-8");
            //Content-Disposition的作用:告知浏览器以何种方式显示响应返回的文件,用浏览器打开还是以附件的形式下载到本地保存
            //attachment表示以附件方式下载   inline表示在线打开   "Content-Disposition: inline; filename=文件名.mp3"
            // filename表示文件的默认名称,因为网络传输只支持URL编码的相关支付,因此需要将文件名URL编码后进行传输,前端收到后需要反编码才能获取到真正的名称
            response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("bpa_out.dat", StandardCharsets.UTF_8));
            // 告知浏览器文件的大小
//            response.addHeader("Content-Length", Flux.just(bpaBo.getData().length()).toString());
            OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
            response.setContentType("application/octet-stream");
            outputStream.write(bpaBo.getData().getBytes(StandardCharsets.UTF_8));
            outputStream.flush();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 将图片插入mysql数据库
  • 浏览器展示图片
  • 浏览器下载图片
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档