进口FileUpload和common-io的Jar包

注意: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();
}
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

SpringMVC使用FileUpload上传文件的更多相关文章

  1. springMVC+jsp+ajax上传文件

    工作中遇到的小问题,做个笔记 实现springMVC + jsp + ajax 上传文件 HTML <body> <form id="myform" method ...

  2. FileUpload 上传文件,并实现c#使用Renci.SshNet.dll实现SFTP文件传输

    fileupload上传文件和jquery的uplodify控件使用方法类似,对服务器控件不是很熟悉,记录一下. 主要是记录新接触的sftp文件上传.服务器环境下使用freesshd搭建好环境后,wi ...

  3. springMvc 使用ajax上传文件,返回获取的文件数据 附Struts2文件上传

    总结一下 springMvc使用ajax文件上传 首先说明一下,以下代码所解决的问题 :前端通过input file 标签获取文件,通过ajax与后端交互,后端获取文件,读取excel文件内容,返回e ...

  4. ASP.NET使用FileUpload上传文件

    前台代码: <asp:FileUpload ID="fuKeleyi" runat="server" /> <asp:Button ID=&q ...

  5. 解决COS、FileUpload上传文件时中文文件名乱码问题

    方法: MultipartParser mp = new MultipartParser(request, 10*1024*1024); mp.setEncoding("GBK") ...

  6. JSP/Serlet 使用fileupload上传文件

    需要引用的jar commons-fileupload-1.3.1.jar commons-io-2.2.jar index.jsp <body> <center> <h ...

  7. SpringMVC使用CommonsMultipartResolver上传文件

    DispatcherServlet并没有实现任何解析multipart请求数据的功能,它将该任务委托给了Spring中MultipartResolver策略接口的实现,通过该接口的实现类来解析mult ...

  8. SpringMVC使用StandardServletMultipartResolver上传文件

    DispatcherServlet并没有实现任何解析multipart请求数据的功能,它将该任务委托给了Spring中MultipartResolver策略接口的实现,通过该接口的实现类来解析mult ...

  9. .NET FileUpLoad上传文件

    一.上传扫描件到服务器,自定义创建文件夹(如果存在该文件夹,则无需创建),并判断格式以及文件大小进行保存: 首先创建一个保存按钮事件: protected void btnSave_Click(obj ...

随机推荐

  1. [置顶] 利用CXF发布webService的小demo

    其实webService的发布不仅仅只有xfire,今天,给大家介绍一下用CXF发布一个webService的小demo,CXF也是我做webService用的第一个框架... 先将相关的jar引进来 ...

  2. 更改CPU厂商信息

    更改所检测到第三方手机CPU制造商型号,于kernel\arch\arm\mach-msm以下适当Board-*.c更改文件.例如我们8226的CPU.必要的Board-8226.c在里面DT_MAC ...

  3. 在MyEclipse8.5中配置Tomcat6.0服务器

    一.单击工具栏的的黑小三角,选择—>Configure Server,出现首选项对话框,在对话框的左边框中找到MyEclipse—>Application Servers下找到Tomcat ...

  4. Codeforces Round #256 (Div. 2) A. Rewards

    A. Rewards time limit per test 1 second memory limit per test 256 megabytes input standard input out ...

  5. 神马是AB測试?

    手机响起了短信提示音,桂芬拿起手机,滑动解锁,看到是来福的短信,心里不禁一阵小鹿乱撞.     "喜欢看<冰封重生之门>吗?"     如此充满暗示意味的短信让桂芬激动 ...

  6. vc++笔记十一

    一.LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 连接器LNK是通过调用cvtres.exe完毕文件向coff格式的转换的,所以出现这样的错误的原因就是cvtres.exe出现了问题 ...

  7. Hadoop读书笔记(二)HDFS的shell操作

    Hadoop读书笔记(一)Hadoop介绍:http://blog.csdn.net/caicongyang/article/details/39898629 1.shell操作 1.1全部的HDFS ...

  8. CoreGraphics QuartzCore CGContextTranslateCTM 说明

    CoreGraphics.h 一些经常使用旋转常量 #define M_E 2.71828182845904523536028747135266250 e 
#define M_LOG2E 1.442 ...

  9. uva10341 - solve it (二分查找)

    题目:uva10341-solve it 题目大意:求解给定的方程式解题思路:由于这个方程式在给定的x的范围内是单调递减的.所以能够用二分查找来尝试x的值.这里的 x是要求保留4小数,所以当区间缩小到 ...

  10. 【C语言探索之旅】 第三部分第一课:SDL开发游戏之安装SDL

    内容简介 1.课程大纲 2.第三部分第一课: SDL开发游戏之安装SDL 3.第三部分第二课预告: SDL开发游戏之创建窗口和画布 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会 ...