这是一篇个人用于记录所作案例的文章,也是一片比较简单易懂的关于?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步骤。
|