java-图片从本地磁盘加载到内存,反显到页面

  //第一种方式:
  /**
     * 图片在本地磁盘的位置 如:E:/teacherCompetition/1/images/1.jpg
     *
     * @param imgName  图片名称
     * @param response
     */
    @GetMapping("/toImg")
    public void picToPage(String imgName, HttpServletResponse response) {
        FileInputStream in;
        response.setContentType("application/octet-stream;charset=UTF-8");
        try {
            //图片读取路径
            in = new FileInputStream(imgpath + imgName);
            int i = in.available();
            byte[] data = new byte[i];
            in.read(data);
            in.close();
            //写图片
            OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
            outputStream.write(data);
            outputStream.flush();
            outputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

//第二种方式
 @GetMapping("/img/{fileName}")
    public ResponseEntity<byte[]> download3(@PathVariable String fileName, HttpServletResponse response) {
        //获取文件对象
        try {
            byte[] bytes = FileUtils.readFileToByteArray(new File(imgpath + fileName));
            HttpHeaders headers = new HttpHeaders();
            headers.set("Content-Disposition", "attachment;filename=test2.png");
            ResponseEntity<byte[]> entity = new ResponseEntity<>(bytes, headers, HttpStatus.OK);
            return entity;
        } catch (IOException e) {
        }
        return null;
    }

get直接请求:http://localhost:7500/foundation/synopsisPro/img/4cc3fa9cbac0421b91e8dff86d1b2cb1.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值