文件上传表单:
后台controller:@RequestMapping(value="/upload",method=RequestMethod.POST)
public String upload(HttpServletRequest request,
//@RequestParam("description") String description,
@RequestParam("file") MultipartFile file) throws Exception {
// System.out.println(description);
//如果文件不为空,写入上传路径
if(!file.isEmpty()) {
//上传文件(目标)路径
String path = request.getServletContext().getRealPath("/static/uploadfile/");
//上传文件名
String filename = file.getOriginalFilename();
//String fileType = originalFileName.substring(originalFileName.indexOf(".") + 1);//截取文件拓展名.jpg
String persistFileUrl = "static/uploadfile/"+filename;//持久化路径
File filepath = new File(path,filename);
//判断路径是否存在,如果不存在就创建一个
if (!filepath.getParentFile().exists()) {
filepath.getParentFile().mkdirs();
}
//将上传文件保存到一个目标文件当中
file.transferTo(new File(path + File.separator + filename));
Contact con = new Contact();
con.setCONTACT_ID(45);
con.setIMG(persistFileUrl);//将文件存储路径持久化数据库
contactService.addOrUpdateImg(con);
return "redirect:list.do";
} else {
return "error";
}
}
文件下载页面:
pageEncoding="UTF-8"%>
文件下载文件下载
${requestScope.user.image.originalFilename }
后台Controller:/**
* 文件下载
* @param request
* @param filename
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value="/download")
public ResponseEntity download(HttpServletRequest request,
@RequestParam("filename") String filename,
Model model)throws Exception {
//下载文件路径
String path = request.getServletContext().getRealPath("/images/");
File file = new File(path + File.separator + filename);
HttpHeaders headers = new HttpHeaders();
//下载显示的文件名,解决中文名称乱码问题
String downloadFielName = new String(filename.getBytes("UTF-8"),"iso-8859-1");
//通知浏览器以attachment(下载方式)打开图片
headers.setContentDispositionFormData("attachment", downloadFielName);
//application/octet-stream : 二进制流数据(最常见的文件下载)。
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
return new ResponseEntity(FileUtils.readFileToByteArray(file),
headers, HttpStatus.CREATED);
}