SpringMVC使用FileUpload上传文件
进口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上传文件的更多相关文章
- springMVC+jsp+ajax上传文件
工作中遇到的小问题,做个笔记 实现springMVC + jsp + ajax 上传文件 HTML <body> <form id="myform" method ...
- FileUpload 上传文件,并实现c#使用Renci.SshNet.dll实现SFTP文件传输
fileupload上传文件和jquery的uplodify控件使用方法类似,对服务器控件不是很熟悉,记录一下. 主要是记录新接触的sftp文件上传.服务器环境下使用freesshd搭建好环境后,wi ...
- springMvc 使用ajax上传文件,返回获取的文件数据 附Struts2文件上传
总结一下 springMvc使用ajax文件上传 首先说明一下,以下代码所解决的问题 :前端通过input file 标签获取文件,通过ajax与后端交互,后端获取文件,读取excel文件内容,返回e ...
- ASP.NET使用FileUpload上传文件
前台代码: <asp:FileUpload ID="fuKeleyi" runat="server" /> <asp:Button ID=&q ...
- 解决COS、FileUpload上传文件时中文文件名乱码问题
方法: MultipartParser mp = new MultipartParser(request, 10*1024*1024); mp.setEncoding("GBK") ...
- JSP/Serlet 使用fileupload上传文件
需要引用的jar commons-fileupload-1.3.1.jar commons-io-2.2.jar index.jsp <body> <center> <h ...
- SpringMVC使用CommonsMultipartResolver上传文件
DispatcherServlet并没有实现任何解析multipart请求数据的功能,它将该任务委托给了Spring中MultipartResolver策略接口的实现,通过该接口的实现类来解析mult ...
- SpringMVC使用StandardServletMultipartResolver上传文件
DispatcherServlet并没有实现任何解析multipart请求数据的功能,它将该任务委托给了Spring中MultipartResolver策略接口的实现,通过该接口的实现类来解析mult ...
- .NET FileUpLoad上传文件
一.上传扫描件到服务器,自定义创建文件夹(如果存在该文件夹,则无需创建),并判断格式以及文件大小进行保存: 首先创建一个保存按钮事件: protected void btnSave_Click(obj ...
随机推荐
- java命令行HPROF Profiler(转)
The HPROF Profiler The Heap and CPU Profiling Agent (HPROF)是JAVA2 SDK自带的一个简单的profiler代理,它通过与Java Vir ...
- swift的struct本节描述结构的类型
<span style="font-size:24px;">struct David { var x = 0;//一个结构的定义,两个字段x,y var y = 0;/ ...
- sql二进制数据权限
(3为权限组合值,结果为1=列表 2=新建 4=修改 8=删除) select 3 & 1 select 3 & 2 select 3 & 4 select 3 & 2 ...
- CSDN-markdown编者LaTex数学公式
LaTex什么? LaTeX(LATEX.音译"拉太和")它是基于ΤΕΧ排版系统,莱斯利由美国计算机科学家·兰伯特(Leslie Lamport)于20纪80年代初期开发,利用这样 ...
- 採訪The Molasses Flood:BioShock Infinite 游戏之后又一大作
Xsolla有幸与Flame in the Flood游戏的开发人员之中的一个-----Forrest Dowling进行了採訪,Flame in the Flood这款非常棒的游戏在Kickstar ...
- JFrame、JDialog close
package common; import javax.swing.JFrame; import javax.swing.SwingUtilities; /*2015-5-26*/ public c ...
- perl操作sqlserver实现BCP
#!C:\Perl64\bin #由BCP备份和恢复SQLSERVER指定表 use 5.014; #加载用户和password型材 my $username ; my $passwd; ##得到us ...
- MVC 应用免受 CSRF攻击
保护ASP.NET 应用免受 CSRF 攻击 CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack ...
- 从零开始做UI-静电的sketch设计教室 视频教程
全套31集目录 01-初识Sketch http://www.ui.cn/detail/52223.html02-sketch的下载与安装 http://www.ui.cn/detail/5222 ...
- C# 经典排序算法大全
C# 经典排序算法大全 选择排序 using System; using System.Collections.Generic; using System.Linq; using System.Tex ...