springboot 文件上传下载

关键点:

1,使用 POST 请求
2,consumes=MediaType.MULTIPART_FROM_DATA_VALUE
3,@RequestParm 里面的字符串和前端 input 控件的 name 值一致

上传文件示例:

@PostMapping(value="/photos", consumes=MediaType.MULTIPART_FROM_DATA_VALUE)
public void addPhoto(@RequestParm("photo") MultipartFile imgFile) throws Exception{
    // 保存文件
    FileOutputStream fos = new FileOutputStream("target/", imgFile.getOriginalFilename());
    IOUtils.copy(imgFile.getInputStream(), fos);
    fos.close();
  
}

带返回值上传文件示例(返回二进制数据,让用户看到上传的图片长什么样):

@PostMapping(value="/icon", consumes=MediaType.MULTIPART_FROM_DATA_VALUE)
public Byte[] addIcon(@RequestParm("photo") MultipartFile imgFile) throws Exception{
     // 用户上传文件的二进制数据
     InputStream is = imgFile.getInputStream();
     // 保存文件
     FileOutputStream fos = new FileOutputStream(new File("F:" + File.separator + imgFile.getOriginalFilename()));
     IOUtils.copy(is, fos);
     fos.close();
     // 返回文件
     return IOUtils.toByteArray(is);
    }

下载文件示例:

@GetMapping(value="/{userId}/photos", consumes=MediaType.MULTIPART_FROM_DATA_VALUE)
public void getPhoto(@RequestParm("photo") MultipartFile imgFile) throws Exception{
       // 返回文件
       String userPhotoImgSrc = "src/test/10001.jpg";
       InputStream is = new FileInputStream(userPhotoImgSrc);
       return IOUtils.toByteArray(is);
}

 

转载于:https://www.cnblogs.com/huanggy/p/9471845.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值