这篇文章主要为大家详细介绍了JSP组件公共-文件上传实现文件上传,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了JSP使用公共-文件上传实现文件上传代码,供大家参考,具体内容如下
1、准备:
将commons-fileupload-1.1.zip和commons-io-1.1.zip复制到\WEB-INF\lib '目录下
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
URL-模式/servlet/文件上传/URL-模式
首先运行html,servlet处理上传请求
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。