POI导出excelspring
springmvc上传以及下载浏览器
//上传文件会自动绑定到MultipartFile中mvc
@RequestMapping(value="/upload",method=RequestMethod.POST)app
public String upload(HttpServletRequest request,excel
@RequestParam("description") String description,orm
@RequestParam("file") MultipartFile file) throws Exception {图片
System.out.println(description); //若是文件不为空,写入上传路径ip
if(!file.isEmpty()) {get
//上传文件路径it
String path = request.getServletContext().getRealPath("/images/");
//上传文件名 String filename = file.getOriginalFilename();
File filepath = new File(path,filename);
//判断路径是否存在,若是不存在就建立一个
if (!filepath.getParentFile().exists())
{ filepath.getParentFile().mkdirs(); }
//将上传文件保存到一个目标文件当中
file.transferTo(new File(path + File.separator + filename)); return "success"; } else { return "error"; }
}
//下载文件SpringMVC提供了一个ResponseEntity类型,使用它能够很方便地定义返回的HttpHeaders和HttpStatus
@RequestMapping(value="/download")
public ResponseEntity<byte[]> 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<byte[]>(FileUtils.readFileToByteArray(file),
headers, HttpStatus.CREATED); }