注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

红尘若梦

生活的色彩

 
 
 

日志

 
 

commons-fileupload批量文件上传简单功能实现  

2015-09-11 12:03:19|  分类: 技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
Apache提供的commons-fileupload jar包应该算是比较流行的上传控件,在使用Servlet/JSP上传的时候调用非常方便。
当然首先是先引用下面二个包:commons-fileipload-1.2.1.jar,commons-io-1.4.jar。
然后JSP代码如下:

<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Collections" %>
<%@ page import="java.util.Comparator" %>
<%@ page import="java.util.List" %>
<%@ page import="java.io.*" %>
<%@ page import="org.jivesoftware.util.JiveGlobals" %>
<%@ page import="org.jivesoftware.util.Log" %>
<%@ page import="org.apache.commons.fileupload.FileItemFactory" %>
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory" %>
<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload" %>
<%@ page import="org.apache.commons.fileupload.FileItem" %>
<%@ page import="org.apache.commons.fileupload.FileUploadException" %>
<%
//JSP页面内不需要下面这句
ServletContext application = this.getServletContext();
//取网站根目录,这里您可以根据相应目录调整
String realDirectory = application.getRealPath("/")+ "/";
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
//处理上传文件
List items = upload.parseRequest(request);
String filelist="";
int fileindex=0;
for (Object objItem : items) {
//取每个文件
FileItem item = (FileItem)objItem;
if(item.isFormField()){
//普通表单域
}else{
String fileName = item.getName();
//取原有文件后辍,这里也可以加入类型判断
String ext=fileName.substring(fileName.lastIndexOf("."));
//排除空文件
if (fileName != null) {
//取到文件大小,这里可以进一步处理
Long filesize=item.getSize();
//生成随机文件名
String newfilename = UUID.randomUUID().toString().replace("-", "") + ext;
//写入文件
item.write(new File(realDirectory+newfilename));
//上传成功后,相应的文件地址网站根目录下newfilename
if(fileindex>0)filelist+=",";
filelist+=newfilename;
fileindex++;
}
//循环处理,可以更进一步
}
}
//打印输出上传成功文件列表
out.print("{\"code\":\"0\",\"msg\":\""+filelist+"\"}");
}catch (FileUploadException e) {
//上传错误
}
%>

以上是JSP中上传文件处理代码,支持批量上传,非常简单也很好用。上传返回信息如下图所示:
commons-fileupload批量文件上传简单功能实现 - 1976xyg - 红尘若梦
 
如果需要更多判断限制,可自行扩展,用在Servlet中也需要相应调整。浏览器端方面:请注意,采用post提交;更改form的enctype属性为:enctype="multipart/form-data"。
  评论这张
 
阅读(83)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017