本文实例为大家分享了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;temperrortype.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处理上传请求
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:- Apache commons fileupload文件上传实例讲解
- java组件commons-fileupload实现文件上传、下载、在线打开
- Java组件commons fileupload实现文件上传功能
- JavaEE组件commons-fileupload实现文件上传、下载
- java组件commons-fileupload文件上传示例
- Apache Commons fileUpload文件上传多个示例分享
- java组件commons-fileupload实现文件上传
- commons fileupload实现文件上传的实例代码
- java组件fileupload文件上传demo
- java使用common-fileupload实现文件上传