下载:
1.在spring-mvc中配置(用于100M以下的文件下载)
1
2
3
4
5
6
7
8
9
10
11
12
|
<bean class = "org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" > <property name= "messageConverters" > <list> <!--配置下载返回类型--> <bean class = "org.springframework.http.converter.ByteArrayHttpMessageConverter" /> <bean class = "org.springframework.http.converter.StringHttpMessageConverter" > <!--配置编码方式--> <property name= "supportedMediaTypes" value= "application/json; charset=UTF-8" /> </bean> </list> </property> </bean> |
下载文件代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
@RequestMapping ( "/file/{name.rp}" ) public ResponseEntity< byte []> fileDownLoad( @PathVariable ( "name.rp" )String name, HttpServletRequest request,HttpServletResponse response) { // @PathVariable String name, // @RequestParam("name")String name, // System.out.println("<name>"+name); // System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); ResponseEntity< byte []> re = null ; try { /** * css,js,json,gif,png,bmp,jpg,ico,doc,docx,xls,xlsx,txt,swf,pdf * **/ //下载防止静态加载干扰 Feelutile f= new Feelutile(); name=f.getfileformat(name); String pathString= "C:\\tempDirectory\\" +name; File file= new File(pathString); HttpHeaders headers= new HttpHeaders(); //String filename=URLEncoder.encode(name, "UTF-8");//为了解决中文名称乱码问题 String filename= new String(name.getBytes( "utf-8" ), "utf-8" ); byte [] by=FileUtils.readFileToByteArray(file); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); //URLEncoder.encode(filename, "UTF-8") headers.setContentDispositionFormData( "attachment" ,filename); headers.setContentLength(by.length); re= new ResponseEntity< byte []>(by, headers, HttpStatus.CREATED); } catch (Exception e) { e.printStackTrace(); try { request.getRequestDispatcher( "/error/404.jsp" ).forward(request, response); } catch (ServletException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } return re; } |
上传文件:
1在spring-mvc中配置
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<!-- 4 .文件上传 配置 file upload --> <bean id= "multipartResolver" class = "org.springframework.web.multipart.commons.CommonsMultipartResolver" > <property name= "defaultEncoding" > <value>UTF- 8 </value> </property> <property name= "maxUploadSize" > <value> 1048576000 </value> </property> <property name= "maxInMemorySize" > <value> 40960 </value> </property> </bean> |
在controller中代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
@RequestMapping (value= "/upload" , method = RequestMethod.POST) @ResponseBody public Json upload(Doc doc, @RequestParam ( "uploadFile" ) CommonsMultipartFile file) { Json j = new Json(); try { String realpath = this .servletContext.getRealPath( "/upload" ); String uploadFileFileName = file.getOriginalFilename(); String uploadFileFileNameWithoutSpace = uploadFileFileName.replaceAll( " " , "" ); String fileType = uploadFileFileNameWithoutSpace.substring(uploadFileFileNameWithoutSpace.lastIndexOf( "." )); File targetFile = new File(realpath+File.separator, uploadFileFileNameWithoutSpace); if (targetFile.exists()) { targetFile.delete(); } file.getFileItem().write(targetFile); docService.upload(doc,uploadFileFileNameWithoutSpace); j.setSuccess( true ); j.setMsg( "Upload manual successfully" ); } catch (Exception e) { logger.error(ExceptionUtil.getExceptionMessage(e)); j.setMsg( "Upload manual unsuccessfully" ); } return j; } |
以上所述是小编给大家介绍的Java Spring MVC 上传下载文件配置及controller方法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://www.cnblogs.com/hongdw/archive/2016/09/30/5924115.html