SpringMVC使用FileUpload上传文件
2015-07-10 09:29
567 查看
进口FileUpload和common-io的Jar包
注意:1、Struts2其它方法需要使用的:struts2过滤,将改变reqeust类型,由HttpServletRequest成为MultiPartRequestWrapper
1、Test.jsp:
2、controller:
注意:1、Struts2其它方法需要使用的:struts2过滤,将改变reqeust类型,由HttpServletRequest成为MultiPartRequestWrapper
1、Test.jsp:
<form action="<%=basePath%>self/testFileUpload.do" method="post" enctype="multipart/form-data"> <input type="text" name="num"> <input name="img1" type="file" accept="image/gif,image/jpg,image/png,image/jpeg"/> <input name="img2" type="file" accept="image/gif,image/jpg,image/png,image/jpeg"/> <input type="submit" name="test"> <input type="reset" name="test1"> </form>
2、controller:
@RequestMapping(value="/testFileUpload") public void testFileUpload(HttpServletRequest request,HttpServletResponse response) throws Exception{ String num = ""; String img1 = ""; String img2 = ""; String fileName = ""; try { String t = request.getCharacterEncoding(); boolean isMultipart = ServletFileUpload.isMultipartContent(request);//推断是否是表单文件类型 if(isMultipart){ DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding(request.getCharacterEncoding());//这里非常重要啊 解决linux环境下上传文件名称乱码的问题 //upload.setFileSizeMax(3*1024*1024);//3M List items = upload.parseRequest(request); if(items.size() == 0){ System.out.println("无数据"); } Iterator<Object> formItem = items.iterator(); while(formItem.hasNext()){ FileItem item = (FileItem) formItem.next(); //假设是表单元素 if(item.isFormField()){ if (item.getFieldName().equals("num")) { num = item.getString(request.getCharacterEncoding()).trim(); } } //假设不是表单元素 if(!item.isFormField()){ String name = item.getName(); String type = item.getContentType(); long sizeInBytes = item.getSize(); try { String fullName = item.getName().trim(); if(fullName != ""){ fileName = System.currentTimeMillis() + fullName.substring(fullName.indexOf(".")); if(item.getFieldName().equals("img1")){ fileName = "img1-" + System.currentTimeMillis() + fullName.substring(fullName.indexOf(".")); } if(item.getFieldName().equals("img2")){ fileName = "img2-" + System.currentTimeMillis() + fullName.substring(fullName.indexOf(".")); } String tomcatRoot = FileOperator.getRootPath(); String path = tomcatRoot; if(FileOperator.FileUploadEx(path, fileName, item.getSize(), item.getInputStream())){ if(item.getFieldName().equals("img1")){ System.out.println("testimg1"); } if(item.getFieldName().equals("img2")){ System.out.println("testimg2"); } } } } catch (Exception e) { e.printStackTrace(); } } } }else{ System.out.println("非multipart/form-data提交方式"); } } catch (Exception e) { e.printStackTrace(); } }
相关文章推荐
- spring MVC工作机制与设计模式-读后小结(二)
- 设置权限出现红叉叉问题
- Java中如何把两个数组合并为一个
- C#与Java的比较
- Java - 输出二进制数字
- Java中的instanceof关键字
- Struts2输入校验
- spring struts hebernate 从前到后
- Java tutorial 4
- JAVA 图片处理
- 4种方法让SpringMVC接收多个对象
- Eclipse 报 “Exception in thread "main" java.lang.OutOfMemoryError: Java heap space ”错误的解决
- Java 调用存储过程 返回结果集
- springmvc cfx 整合
- JavaSE实战——API(下) System、Runtime、Math、Date、DateFormat、Calendar、日期格式解析
- Struts2的result返回类型
- java 常见内存溢出
- kafka 学习笔记(二)之Java Producer客户端
- Java - Think in Java 第4章 习题
- java基础——static 关键字小节