springmvc与Servlet3.0不依赖common包实现文件上传
来源:互联网 发布:大数据应用方向 编辑:程序博客网 时间:2024/06/03 22:40
Servlet3.0以上的版本不再需要第三方组件Commons.io和commons-fileupload,可以使用@MultipartConfig注解在Servlet上进行配置上传,也可以在web.xml上进行配置。
1、修改web.xml配置上传参数
<servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/springmvc.xml</param-value></init-param><!--Servlet3.0以上文件上传配置 --> <multipart-config> <max-file-size>5242880</max-file-size><!--上传单个文件的最大限制5MB --> <max-request-size>20971520</max-request-size><!--请求的最大限制20MB,一次上传多个文件时一共的大小 --> <file-size-threshold>0</file-size-threshold><!--当文件的大小超过临界值时将写入磁盘 --> </multipart-config></servlet>
file-size-threshold:数字类型,当文件大小超过指定的大小后将写入到硬盘上。默认是0,表示所有大小的文件上传后都会作为一个临时文件写入到硬盘上。
location:指定上传文件存放的目录。当我们指定了location后,我们在调用Part的write(String fileName)方法把文件写入到硬盘的时候可以,文件名称可以不用带路径,但是如果fileName带了绝对路径,那将以fileName所带路径为准把文件写入磁盘,不建议指定。
max-file-size:数值类型,表示单个文件的最大大小。默认为-1,表示不限制。当有单个文件的大小超过了max-file-size指定的值时将抛出IllegalStateException异常。
max-request-size:数值类型,表示一次上传文件的最大大小。默认为-1,表示不限制。当上传时所有文件的大小超过了max-request-size时也将抛出IllegalStateException异常。
2、修改springmvc-servlet.xml配置信息
将原有的文件上传通用解析器更换为标准解析器,修改后的配置如下所示:
<!--文件上传解析器 --> <bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver"> </bean>
3、修改springmvc-servlet.xml配置信息
<form action="file3Save" method="post" enctype="multipart/form-data"> <p> <label for="files">文件:</label> <input type="file" name="files" id="files" multiple="multiple" /> </p> <p> <button>提交</button> </p> <p> ${message} </p></form>
multiple="multiple"这个属性是HTML5新增加的属性,一些旧版的浏览器可能不支持,使用JavaScript可以处理一下。
4、定义Action
@RequestMapping(value="/file3Save",method=RequestMethod.POST) public String file3Save(Model model,MultipartFile[] files,HttpServletRequest request) throws Exception{ //文件存放的位置 String path=request.getSession().getServletContext().getRealPath("/files"); System.out.println(path); String msg=""; for (MultipartFile file : files) { //保存文件 File tempFile=new File(path, file.getOriginalFilename()); file.transferTo(tempFile); msg+="<img src='../files/"+file.getOriginalFilename()+"' width='200' />"; } model.addAttribute("message", msg); return "up/upfile3"; }5、测试运行
阅读全文
0 0
- springmvc与Servlet3.0不依赖common包实现文件上传
- SpringMVC + servlet3.0 文件上传的配置和实现
- 文件上传 Servlet3.x SpringMvc
- Servlet3.0实现上传文件到服务器端
- 文件上传之servlet3.0实现
- servlet3.0 实现文件的上传
- servlet3.0上传文件
- servlet3.0文件上传
- Servlet3.0文件上传
- servlet3.0 文件上传
- Servlet3.0的文件上传
- Servlet3.0现实文件上传
- servlet3.0多文件上传
- Servlet3.0 上传文件实例
- 【Demo】Servlet3.0 上传文件
- servlet3.0处理文件上传
- 使用Servlet3.0上传文件
- servlet3.0 part上传文件
- 调用七牛SDK,在上传之前限制图片尺寸大小
- js合并table单元格
- 5个强大的Java分布式缓存框架推荐
- leetcode 54. Spiral Matrix 螺旋方式读取矩阵
- 1750:陶陶摘苹果
- springmvc与Servlet3.0不依赖common包实现文件上传
- RePlugin 常见问题总结
- 「python」常用的数据类型转换
- 云数据库产品及架构设计背后的考量
- 8. String to Integer (atoi)
- [FAQ10563]如何验证APN是否添加成功?
- Docker持续部署图文详解
- Struts2 Part4
- 如何利用思维导图进行写作的6种模板鉴赏