java spring mvc 上传
2016-01-04 12:43
344 查看
Spring mvc 实现上传功能
spring mvc Controller 中的代码
JSP中的代码
form 标签里面必须有
spring mvc 中配置参数
spring mvc Controller 中的代码
@RequestMapping("/userAddGo") public ModelAndView userAddGo(HttpServletRequest request, @ModelAttribute("user") User user) throws IllegalStateException, IOException { ModelAndView mav = new ModelAndView("redirect:/user/userList"); userService.insertUser(user); System.out.println("文件上传。。"); // 创建一个通用的多部分解析器. CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver( request.getSession().getServletContext()); // 设置编码 multipartResolver.setDefaultEncoding("utf-8"); // 判断 request 是否有文件上传,即多部分请求... if (multipartResolver.isMultipart(request)) { MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; Iterator<String> iter = multiRequest.getFileNames(); while (iter.hasNext()) { MultipartFile file = multiRequest.getFile(iter.next()); // 判断文件是否为空 if (file.isEmpty()) { continue; } String path = request.getSession().getServletContext() .getRealPath("/"); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); sdf.format(new Date()); // 获取文件的名字 String originalFilename = file.getOriginalFilename(); String filepath = request.getSession().getServletContext() .getRealPath("/") + "upload/" + file.getOriginalFilename(); this.createParentDirectory(filepath); File uploadFile = new File(filepath); file.transferTo(uploadFile); } } return mav; }
private void createParentDirectory(String path) { Assert.notNull(path); File file = new File(path); if (!file.getParentFile().exists()) { file.getParentFile().mkdirs(); file.getParentFile().setWritable(true, false); file.getParentFile().setExecutable(true, false); } }
JSP中的代码
<tr> <td> <input type="file" id="file" name="file">上传</ipput> </td> </tr> <tr> <td> <input type="button" onclick="submit();" value="确认"/> </td> </tr> </table> </form> <script type="text/javascript"> function submit(){ $('#ff').submit(); } </script>
form 标签里面必须有
enctype="multipart/form-data"
<form action="${pageContext.request.contextPath}/user/userAddGo" id="ff" enctype="multipart/form-data"method="post">
spring mvc 中配置参数
<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 默认编码 --> <property name="defaultEncoding" value="utf-8" /> <!-- 文件大小最大值 --> <property name="maxUploadSize" value="10485760000" /> <!-- 内存中的最大值 --> <property name="maxInMemorySize" value="40960" /> </bean>
相关文章推荐
- Java数字相关
- Java-Blob-取出来插入另一个数据库[导库程序]
- Java多线程碎碎念
- Spring定时任务的几种实现
- android studio项目如何导入到eclipse中
- Eclipse打开时“发现了以元素'd:skin'”开头的无效内容。此处不应含有子元素的解决方法
- eclipse最有用快捷键整理 by 戎码一生
- Struts2 集成 sitemesh配置
- java.net.UnknownHostException
- java中判断一个字符串是否“都为数字”和“是否包含数字”和“截取数字”
- AndroidStudio介绍,代理配置,特性,技巧及从eclipse迁移到as
- 说说Java的内存
- java.lang.VerifyError解决方案
- springmvc集成jsp和freemark两个模板引擎
- java 同一个类中 多个synchronized 方法会造成死锁
- Java工程师成神之路 --一篇非常好的文章,让人获益匪浅!!!
- java环境
- JAVA 字符串 的转换
- java 同一个类中 多个synchronized 方法会造成死锁
- Lombok - 简化java代码