spring实战-Spring文件上传MultipartFile
来源:互联网 发布:域名注册 便宜 编辑:程序博客网 时间:2024/05/23 22:18
第六篇:spring实战-Spring文件上传MultipartFile
在构建网站是,处理文件上传功能是必须的,比如创建用户需要用户上传头像,创建服务器列表需要上传Excel文件等等
在Springmvc中对文件上传做了比较好的支持,同时支持基于Servlet3.0的标准multipart请求(StandardServletMultipartResolver),也支持基于Jakarta的Commons FileUpload(CommonsMultipartResolver)
下面主要展示标准Servlet3.0支持的方式,也推荐这种方式
1,需要在TilesWebConfig中配置MultipartResolver
/** * 使用以来servet3.0的标准multipart解析器 * @return */@Beanpublic MultipartResolver multipartResolver() {return new StandardServletMultipartResolver();}2,需要在IdatWebAppInitializer中配置MultipartConfigElement
/** * 设置Servlet支持文件上传 * 并且上传的文件保存临时路径在/tmp/idat/uploads路径下面 * 单个文件大小不超过2M,一次上传所有文件大小总和不超过4M,0表示文件个数不限 * 如果文件大小超过限制,则会保存到临时路径下 */ @Overrideprotected void customizeRegistration(Dynamic registration) {registration.setMultipartConfig(new MultipartConfigElement("d:/idat/uploads",2097152,4194304,0));super.customizeRegistration(registration);}
3,文件上传表单form支持multipart/form-data
<form:form method="POST" commandName="interface" enctype="multipart/form-data"><form:errors path="*" element="div" cssClass="errors"></form:errors><table>.......<tr><td>logo</td><td><input type="file" name="logo" /></td></tr></table><input type="submit" value="create" /></form:form>4,处理控制器,接受并处理MultipartFile
/** * 直接接受对象类型Interface 作为入参 * form表单中input的属性name和Interface的属性一一对应 * 注解@Valid启用校验功能,会按着Interface中属性的校验规则来校验入参 * 需要住的是后面的Errors参数需要紧跟@Valid注解的变量后面,error返回该校验参数的校验结果 * 但是如果希望Valid生效,还需要hibernate-validator包,或者同类实现Java Validation API的包 * @param intf * @return * @throws FileNotFoundException */@RequestMapping(value = "/create", method=RequestMethod.POST)public String create(@Valid Interface intf, Errors errors, @RequestPart("logo") MultipartFile logo) throws IOException{// 如果校验不通过的话,返回创建表单页面if (errors.hasErrors()) {return "createForm";}String originalFilename = logo.getOriginalFilename();FileOutputStream fileOutputStream = new FileOutputStream("d:/idat/"+originalFilename);fileOutputStream.write(logo.getBytes());fileOutputStream.flush();fileOutputStream.close();Interface rintf = idatService.save(intf);// 当视图解析器遇到 redirect:时,把他解析为重定向的规则,还有一个forward:// 具体redirect 和 forward 的区别 请参考 http://blog.csdn.net/tidu2chengfo/article/category/6993805return "redirect:queryInterfacesByName/" + rintf.getName() + "/intf";}
至此,我们便完成了从客户端向服务器上传提交文件
阅读全文
0 0
- spring实战-Spring文件上传MultipartFile
- Spring MultipartFile 文件上传
- spring boot MultipartFile[]文件上传
- spring mvc MultipartFile 上传文件错误解决
- spring-boot上传文件MultiPartFile获取不到文件问题解决
- 解决使用Spring Boot、Multipartfile上传文件路径错误问题
- Spring SpringMVC使用MultipartFile实现文件的上传
- spring boot 使用MultipartFile实现文件上传报错。
- Spring boot上传文件时MultipartFile为空问题
- Spring Cloud Feign Client 实现MultipartFile上传文件功能
- Spring boot上传文件时MultipartFile为空问题
- Spring MVC上传文件MultipartFile配置以及简单使用
- 解决使用Spring Boot、Multipartfile上传文件路径错误问题
- Spring MVC - MultipartFile实现文件上传(单文件与多文件上传)
- Spring MultipartFile 上传 与 excel处理 .
- Spring MultipartFile 上传 与 excel处理
- Spring MultipartFile 上传 与 excel处理
- Spring MultipartFile 上传 与 excel处理
- JAVA8 创建可重复注解的容器
- 教你在微信中给Vue单页应用设置标题
- 142. Linked List Cycle II
- <3>—— Longest Substring Without Repeating Characters
- 如何摆脱稀缺头脑模式?
- spring实战-Spring文件上传MultipartFile
- JAVA--Set接口的两种遍历方法
- 水平分库分表的关键问题及解决思路
- UML工具大全
- 【mysql】sql语句优化
- 欢迎使用CSDN-markdown编辑器
- 多线程编程
- java加载jar包下的资源文件过程及原理分析
- 斗鱼直播相关iOS视频by文明