这里有新鲜出炉的Java函数式编程,程序狗速度看过来!
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
这篇文章主要介绍了Java Spring MVC 上传下载文件配置及controller方法详解,本文介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
下载:
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 block
- e1.printStackTrace();
- } catch(IOException e1) {
- // TODO Auto-generated catch block
- e1.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)@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方法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对PHPERZ网站的支持!
来源: http://www.phperz.com/article/17/1112/359825.html