Java Spring MVC 上传下载文件配置及controller方法详解

时间:2021-05-20

下载:

1.在spring-mvc中配置(用于100M以下的文件下载)

<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>

下载文件代码

@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 blocke1.printStackTrace();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}return re;}

上传文件:

1在spring-mvc中配置

<!--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中代码如下

@RequestMapping(value="/upload", method = RequestMethod.POST)@ResponseBodypublic 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方法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章