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

 更新时间:2016年09月30日 16:47:29   转载 作者:回魔一笑  
这篇文章主要介绍了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方法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Java中Array List与Linked List的实现分析

    Java中Array List与Linked List的实现分析

    这篇文章主要给大家介绍了关于Array List与Linked List实现的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • 初步学习Java中线程的实现与生命周期

    初步学习Java中线程的实现与生命周期

    这篇文章主要介绍了初步学习Java中线程的实现与生命周期,线程方面的知识是Java学习过程中的重点和难点,需要的朋友可以参考下
    2015-11-11
  • java实例方法被覆盖,静态方法被隐藏Explain(详解)

    java实例方法被覆盖,静态方法被隐藏Explain(详解)

    下面小编就为大家带来一篇java实例方法被覆盖,静态方法被隐藏Explain(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 一行java代码实现高斯模糊效果

    一行java代码实现高斯模糊效果

    这篇文章主要为大家详细介绍了一行java代码实现高斯模糊效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Java使用continue语句的实例详解

    Java使用continue语句的实例详解

    这篇文章主要介绍了Java使用continue语句的实例详解的相关资料,希望通过本文能帮助到大家,让大家掌握使用方法,需要的朋友可以参考下
    2017-10-10
  • Java8 HashMap的实现原理分析

    Java8 HashMap的实现原理分析

    Java8之后新增挺多新东西,接下来通过本文给大家介绍Java8 HashMap的实现原理分析,对java8 hashmap实现原理相关知识感兴趣的朋友一起学习吧
    2016-03-03
  • SpringBoot中的Thymeleaf用法

    SpringBoot中的Thymeleaf用法

    Thymeleaf是最近SpringBoot推荐支持的模板框架。本文重点给大家介绍SpringBoot中的Thymeleaf用法,需要的的朋友参考下吧
    2017-05-05
  • Struts2 $,#,%详解及实例代码

    Struts2 $,#,%详解及实例代码

    这篇文章主要介绍了Struts2 $,#,%详解及实例代码的相关资料,需要的朋友可以参考下
    2016-12-12
  • 手把手教你设置IntelliJ IDEA 的彩色代码主题的图文教程

    手把手教你设置IntelliJ IDEA 的彩色代码主题的图文教程

    本文给出一系列 IntelliJ IDEA 代码的彩色主题,感兴趣的朋友一起看看吧
    2018-01-01
  • Spring IOC基于注解启动示例详析

    Spring IOC基于注解启动示例详析

    这篇文章主要给大家介绍了Spring IOC基于注解启动的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03

最新评论