简单易懂的Spring MVC 之 上传 与 下载

这是一篇个人用于记录所作案例的文章,也是一片比较简单易懂的关于 Spring MVC 上传 与 下载的文章,代码不多,注释也比较完善哈~~~

上代码:

前端的jsp文件的代码:

<form action="/upload" method="post" enctype="multipart/form-data">
  文件上传:<input type="file" name="file" id=""> <br>
  文件上传:<input type="submit"value="上传"> <br>

</form>
<a href="download/aomei01.jpg">下载文件</a>
<a href="download/a1.jpg">下载图片1</a>
<a href="download?fileName=a1.jpg">下载图片2</a>
<a href="download?fileName=aomei01.jpg">下载图片2</a>

这里就把上传与下载的代码,放在一起了,也是方便大家比较;

下面上后台的逻辑代码:

@RequestMapping("/upload")
public String upload(MultipartFile file, HttpServletRequest request) throws IOException {
    //1获取上传文件的路径
    String path = request.getServletContext().getRealPath("/upload/");
    //2拿到上传文件名
    String name = file.getOriginalFilename();
    //3改名,把用户上传的文件进行改名操作
    String nameNew = new Date().getTime() + new Random().nextInt(999999) + name;
    //4实例化File类的对象加载上传路径和文件
    File f = new File(path + nameNew);
    //5 MultipartFile 里面的方法把路径的文件写入过去
    file.transferTo(f);
    System.out.println("f = " + f);
    return "ok";
}

这是上传的代码,大致分为5个步骤,每一步都有相关的注释,这里就不多介绍,以便浪费大家的阅读积极性!!!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

@RequestMapping("/download")
public ResponseEntity<byte[]> dpwnload(@RequestParam("fileName") String fileName,HttpServletRequest request) throws IOException{
    //1.下载的路径
    String path = request.getServletContext().getRealPath("/download/");
    //2.实例化File类对象加载下载的路径和文件
    File f = new File(path+fileName);
    System.out.println("f = " + f);
    //3.转格式
    String newName = new String(fileName.getBytes("utf-8"),"iso8859-1");
    //4.转流
    HttpHeaders hh = new HttpHeaders();
    hh.setContentDispositionFormData("attachment", newName);
    hh.setContentType(MediaType.APPLICATION_OCTET_STREAM);
    //5.相应发送
    return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(f),hh,HttpStatus.CREATED);
}

最后是下载的相关逻辑代码:也是分为5步骤。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值