引入文件上传相关jar包,commons-io 、commons-fileupload
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
文件上传
@RequestMapping("/upload")
public void uploadFile (@RequestParam("file") MultipartFile multipartFile, HttpServletRequest request) throws IOException {
String fileName = multipartFile.getOriginalFilename(); //获取文件名称
File file = new File("D:\\idea\\test_restcontroller", fileName); //创建file对象
file.getParentFile().mkdirs(); //父目录不存在就创建返回true,存在返回false
if (!file.exists()){
file.createNewFile();
}
multipartFile.transferTo(file); //将multipartFile上传到指定file对象
}
文件下载
@RequestMapping("/download")
public void downloadFile (@RequestParam("fileName") String fileName, HttpServletRequest request, HttpServletResponse response) throws IOException {
File file = new File("D:\\idea\\test_restcontroller\\" + fileName); //下载文件创建对象
if (!file.exists()){
file.createNewFile();
}
FileInputStream fileInputStream = new FileInputStream(file); //创建文件输入流
FileOutputStream outputStream = new FileOutputStream(new File("D:\\idea", fileName)); //创建文件输出流,D:\\idea是下载位置的目录
FileCopyUtils.copy(fileInputStream, outputStream); //文件复制
fileInputStream.close();
}