当前位置 : 主页 > 编程语言 > c++ >

SpringMVC的文件上传以及文件下载

来源:互联网 收集:自由互联 发布时间:2021-07-03
file.text 文件上传首先将Form表单的method方式这是为POST,并且将enctype设置为诶multipart/form-data,只有在这种情况下用户的文件二进制数据会被提交给服务器。同时需要commons-FileUpload.jar以及
file.text
文件上传首先将Form表单的method方式这是为POST,并且将enctype设置为诶multipart/form-data,只有在这种情况下用户
的文件二进制数据会被提交给服务器。同时需要commons-FileUpload.jar以及commons-io.jar.

例子:
form表单
 
 
文件描述: 请选择文件:
控制器 private static final Log logger=LogFactory.getLog(Upload.class); @RequestMapping(value="/upload",method=RequestMethod.POST) public String upload(@RequestParam("description")String description, @RequestParam("file")MultipartFile file,HttpServletRequest request)throws Exception{ System.out.println(description); //如果文件不为空,写入上传路径 if(!file.isEmpty()){ //上传文件路径 String path=request.getRealPath("WEB-INF/file"); logger.info(path); //上传文件名 String filename=file.getOriginalFilename(); logger.info(filename); File filepath=new File(path,filename); logger.info(filepath); //判断路径是否存在,不存在则创建 if(!filepath.getParentFile().exists()){ filepath.getParentFile().mkdirs(); } //将上传文件保存到一个目标文件中,其中File.separator是为了防止Windows和Linux下路径斜杠的区别 file.transferTo(new File(path+File.separator+filename)); return "success"; }else{ return "error"; } } 配置文件中装配Bean 10485760 UTF-8 成功后跳转的页面 ${requestScope.filename} 文件下载主要用到了ResponseEntity类型很方便的定义HttpHeaders以及HttpStatus。 当点击超链接后跳转到控制器download中,如下: @RequestMapping(value="download") public ResponseEntity download(HttpServletRequest request,@RequestParam("filename") String filename ,Model model) throws Exception{ //下载路径 String path=request.getRealPath("WEB-INF/file"); //完整的路径包括下载文件的名称 File file=new File(path+File.separator+filename); HttpHeaders headers=new HttpHeaders(); //解决下载文件中文乱码问题 String downloadFileName=new String(filename.getBytes("UTF-8"),"iso-8859-1"); //通知游览器以attachment(下载方式)打开文件 headers.setContentDispositionFormData("attachment", downloadFileName); //application/octet-stream:二进制流数据,最常见的文件下载 headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); return new ResponseEntity (FileUtils.readFileToByteArray(file),headers,HttpStatus.CREATED); }
上一篇:xml解析之sax解析
下一篇:Java的排序方法
网友评论