这篇文章主要为大家详细介绍了JSP组件公共-文件上传实现文件上传,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了JSP使用公共-文件上传实现文件上传代码,供大家参考,具体内容如下
1、准备:
将commons-fileupload-1.1.zip和commons-io-1.1.zip复制到WEB-INFlib 目录下
2、首先是Servlet
:FileUpload.java打包小型应用程序
导入Java。io。文件;
导入Java。io。io异常;
导入Java。io。版画家;
导入Java。util。*;
导入Java。util。正则表达式。图案;
导入Java。util。正则表达式。matcher
导入javax。servlet。servlet异常;
导入javax。servlet。http。http servlet
导入javax。servlet。http。http servlet请求;
导入javax。servlet。http。http servlet响应;
导入org。阿帕奇。公地。文件上传。文件项目;
导入组织。阿帕奇。公地。文件上传。文件上传异常;
导入组织。阿帕奇。公地。文件上传。磁盘。磁盘fileitemfactory
导入org。阿帕奇。公地。文件上传。servlet。servlet文件上传;
公共类文件上传扩展HttpServlet {
私有字符串upload path= E: add net file ;//要上传文件的目录
私有文件tempPath=新文件( E: tempFile );//存放上传的文件的目录
公共void doGet(HttpServletRequest请求,HttpServletResponse响应)
引发ServletException,IOException {
}
公共void doPost(http servlet请求请求,HttpServletResponse响应)
引发ServletException,IOException {
回应。设置内容类型( text/html;charset=GB 2312’);
回应。setcharacterencoding( GB 2312 );
PrintWriter out=响应。getwriter();
out.println(请求内容的长度为:请求。get contentlength());
out.println(请求内容的类型为:请求。获取内容类型());
DiskFileItemFactory factory=new DiskFileItemFactory();
工厂。设置存储库(tempPath);
工厂。setsize阈值(4096);
servlet文件上传上传=新servlet文件上传(工厂);
上传。setsizemax(1000000);
列表?fileitems=null
尝试{
fileitems=upload.parseRequest(请求);
迭代器?迭代器=文件项。迭代器();
字符串正则表达式=。\(.)$;
String[] errortype={ .请执行","。 com , .cgi , .ASP };
模式p=模式。编译(regex);
while(iterator.hasNext()){
FileItem item=(FileItem)迭代器。next();
如果(!item.isFormField()){
字符串名称=项目。getname();
长尺寸=项目。getsize();
if(name==null | | name。等于(“”)size==0)
继续;
匹配器m=p.matcher(名称);
if(m.find()){
for(int temp=0;temperrortype.length温度){
if(m.group(1)).endsWith(errortype[temp])
抛出新的IOException(名称):错误的类型);
}
尝试{
项目.写入(新文件(tempPath,m . group(1)));
出去。println(name size br/);
out.println(上传成功);
}catch(异常e){
出去。println( 333 e);
}
}
否则{
抛出新的IOException("上传失败");
}
}
}
}catch(IOException e){
出去。println( 222 e);
}
catch(FileUploadException e1){
E1。printstacktrace();
出去。println( 111 E1);
}
}
公共void init()引发ServletException {
如果(!新文件(上传路径)。isDirectory())
新文件(上传路径)。mkdir();
如果(!tempPath.isDirectory())
临时路径。mkdir();
}
public void destroy(){
超级棒。destroy();
}
}
3、其次是html:Uploadfile.html
!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN
超文本标记语言
头
titleUploadfilel.html/title
meta http-equiv= keywords content= keyword 1,keyword2,keyword3
meta http-equiv= description content=这是我的页面
meta http-equiv= content-type content= text/html;charset=UTF-8
!-link rel=样式表 type= text/CSS href= ./styles.css -
/头
身体
form action=/first JSP/servlet/file upload method= post enctype= multipart/form-data name= form 1
输入类型=文件名称=文件/
输入类型=提交名称=提交值=上传/
/表单
表单action=/first JSP/servlet/file upload method= post enctype= multipart/form-data name= upload form
桌子
tr
(美)财政部(财政部)
文件1:输入类型=file name=X size=40/
/td
/tr
tr
(美)财政部(财政部)
文件2:输入类型=file name=Y size=40/
/td
/tr
tr
(美)财政部(财政部)
文件3:输入类型=file name=Z size=40/
/td
/tr
/表格
输入类型=提交名称=上传值=开始上传/
/表单
/body
/html
4、最后是配置web.xml
小型应用程序
描述这是我的J2EE组件的描述/描述
显示名称这是我的J2EE组件的显示名称/显示名称
servlet名称文件上传/servlet-name
类servlet .文件上传/servlet-class
/servlet
小型应用程序映射
servlet名称文件上传/servlet-name
全球资源定位器(Uniform Resource Locator)模式/servlet/文件上传/url模式
首先运行html,servlet处理上传请求
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。