JSP组件commons-fileupload实现文件上传
作者:lijiao 发布时间:2023-07-03 03:16:01
标签:JSP,commons,fileupload,文件上传
本文实例为大家分享了JSP使用commons-fileupload实现文件上传代码,供大家参考,具体内容如下
1、准备:
将commons-fileupload-1.1.zip和commons-io-1.1.zip复制到"\WEB-INF\lib"目录下
2、首先是Servlet: FileUpload.java
package servlet;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class FileUpload extends HttpServlet {
private String uploadPath="E:\\addnetFile\\";//要上传文件的目录
private File tempPath=new File("E:\\tempFile\\");//存放上传的文件的目录
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=GB2312");
response.setCharacterEncoding("gb2312");
PrintWriter out=response.getWriter();
out.println("请求内容的长度为:"+request.getContentLength());
out.println("请求内容的类型为:"+request.getContentType());
DiskFileItemFactory factory=new DiskFileItemFactory();
factory.setRepository(tempPath);
factory.setSizeThreshold(4096);
ServletFileUpload upload=new ServletFileUpload(factory);
upload.setSizeMax(1000000);
List<?> fileitems=null;
try{
fileitems=upload.parseRequest(request);
Iterator<?> iterator=fileitems.iterator();
String regex=".+\\\\(.+)$";
String[] errortype={".exe",".com",".cgi",".asp"};
Pattern p=Pattern.compile(regex);
while(iterator.hasNext()){
FileItem item=(FileItem) iterator.next();
if(!item.isFormField()){
String name=item.getName();
long size=item.getSize();
if(name==null||name.equals("")&&size==0)
continue;
Matcher m=p.matcher(name);
if(m.find()){
for(int temp=0;temp<errortype.length;temp++){
if(m.group(1).endsWith(errortype[temp]))
throw new IOException(name+":wrong type");
}
try{
item.write(new File(tempPath,m.group(1)));
out.println(name+" "+size+"<br/>");
out.println("上传成功");
}catch(Exception e){
out.println("333"+e);
}
}
else{
throw new IOException("fail to upload");
}
}
}
}catch(IOException e){
out.println("222"+e);
}
catch(FileUploadException e1){
e1.printStackTrace();
out.println("111"+e1);
}
}
public void init() throws ServletException {
if(!new File(uploadPath).isDirectory())
new File(uploadPath).mkdir();
if(!tempPath.isDirectory())
tempPath.mkdir();
}
public void destroy(){
super.destroy();
}
}
3、其次是html:Uploadfile.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Uploadfilel.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
</head>
<body>
<form action="/Firstjsp/servlet/FileUpload" method="post" enctype="multipart/form-data" name="form1">
<input type="file" name="file"/>
<input type="submit" name="submit" value="upload"/>
</form>
<form action="/Firstjsp/servlet/FileUpload" method="post" enctype="multipart/form-data" name="uploadform">
<table>
<tr>
<td>
文件1:<input type="file" name="X" size="40"/>
</td>
</tr>
<tr>
<td>
文件2:<input type="file" name="Y" size="40"/>
</td>
</tr>
<tr>
<td>
文件3:<input type="file" name="Z" size="40"/>
</td>
</tr>
</table>
<input type="submit" name="upload" value="开始上传"/>
</form>
</body>
</html>
4、最后是配置web.xml
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>FileUpload</servlet-name>
<servlet-class>servlet.FileUpload</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FileUpload</servlet-name>
<url-pattern>/servlet/FileUpload</url-pattern>
首先运行html,servlet处理上传请求
0
投稿
猜你喜欢
- 购物车的设计目标 从程序员的观点来看,购物车是维护购物者商品选购、允许察看、允许修改的一个对象。购物车本身是一个非常简单的程序,但开发者要考
- 浏览器经常Cache你的页面,这是一个很麻烦的问题,下面先提出几种方案来解决一般的问题:(把下面的代码加入到asp程序的最开始位置)<
- 这个可应用于所有浏览器中.<SCRIPT language=javascript>var leave=true; functio
- 首先,必须有错误继续进行的声明On Error Resume Next 然后尝试简历jmail实例: Dim JMail Set JMail
- 如果说亲密性原则是对元素的归类组合,是将元素之间逻辑理解上的差异在视觉上表现出来,是属于信息分类的话,那么对齐原则即是在视觉上串起这些差异化
- 1、什么是AspJpeg?AspJpeg是一款功能强大的基于Microsoft IIS环境的图片处理组件,AspJpeg可以使用很少的代码在
- flash param参数和属性下列标记属性和参数描述了由“发布”命令创建的 HTML 代码。在编写自己的用于显示 Flash 内容的 HT
- Data URIData URI是由RFC 2397定义的一种把小文件直接嵌入文档的方案。通过如下语法就可以把小文件变成指定编码直接嵌入到页
- strConnString = "driver={MySQL ODBC 3.51 
- Web Forms 2.0 是一个很有意思的东东,是 HTML 5 的组成部分。它的目标是提升表单的使用性 (usability),基本上就
- 1.1.1 摘要 相信大家对于SQL Transcation再熟悉不过,它确保了数据库的数据一致性和安全性,尤其在对数据执行增删时,如果发生
- 偶然看到 Tanel Poder 提到的一个 Metalink Note (438452.1): Performance Tools Qui
- 在windows下的解决办法如下: 1.net stop mysql 停用服务 &
- 当然,这些并非真正的定律,而只是一些有益的忠告,使你免陷于使用层时可能的困顿中。原来有九条定律的,我们精简掉一条,还有下面的八条:1. 如果
- 鉴于人手严重不足(当时算两个半人的资源),打消了逐个库手动去改的念头。当前的程序结构不允许搞革命的做法,只能搞搞改良,所以准备搞个自动化工具
- PHP simplexml_load_file() 函数实例转换 XML 文件为 SimpleXMLElement 对象,然后输出对象的键和
- 本文实例为大家分享了Go实现文件上传的具体代码,供大家参考,具体内容如下文件上传:客户端把上传文件转换为二进制流后发送给服务器,服务器对二进
- Dreamweaver出现乱码,大致为两种情况:一是没有标明主页制作所用的文字,这种情况下很简单就可以
- 查询语言通过在查询表格中键入单词或短语,然后单击按钮执行查询,就可以在 Web 站点中搜索任意的单词或短语(例如,查询表格示例
- 我们在网页中使用CSS来设置网页、表格和字体大小,一般使用的是网络上较流行的9磅字:<STYLE type=TEXT/CSS