代码来自网络,稍作改动...
引入的jar包
commons-io-1.2.jar
commons-fileupload-1.1.1.jar
Servlet类
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
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;
/**
*
* @author Administrator
*
*/
public class FileUploadServlet extends HttpServlet {
private String uploadPath = "D:\\addnetFile\\"; // 用于存放上传文件的目录
private File tempPath = new File("D:\\addnetFile\\tmp\\"); // 用于存放临时文件的目录
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html; charset=GB2312");
PrintWriter out = res.getWriter();
System.out.println(req.getContentLength());
System.out.println(req.getContentType());
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(4096);
factory.setRepository(new File("d:\\File\\addnetFile\\temp"));
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(1000000);
try {
List fileItems = upload.parseRequest(req);
Iterator iter = fileItems.iterator();
// 正则匹配,过滤路径取文件名
String regExp = ".+\\\\(.+){1}quot;;
// 过滤掉的文件类型
String[] errorType = { ".exe", ".com", ".cgi", ".asp" };
Pattern p = Pattern.compile(regExp);
while (iter.hasNext()) {
FileItem item = (FileItem) iter.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);
boolean result = m.find();
if (result) {
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("d:\\" + m.group(1)));
out.print(name + " " + size + "<br>");
} catch (Exception e) {
out.println(e);
}
} else {
throw new IOException("fail to upload");
}
}
}
} catch (IOException e) {
out.println(e);
} catch (FileUploadException e) {
out.println(e);
}
}
public void init() throws ServletException {
}
}
Web前端Html页
<html>
<head>
<title>物料维护</title>
<link rel="stylesheet" href="../style/drp.css">
<script src="../script/client_validate.js"></script>
<script language="javascript">
</script>
</head>
<body class="body1">
<form name="itemForm" target="_self" id="itemForm" method="post" enctype="multipart/form-data" action="../servlet/item/FileUploadServlet">
<div align="center">
<table width="95%" border="0" cellspacing="2" cellpadding="2">
<tr>
<td>
</td>
</tr>
</table>
<table width="95%" border="0" cellspacing="0" cellpadding="0"
height="8">
<tr>
<td width="522" class="p1" height="2" nowrap>
<img src="../images/mark_arrow_03.gif" width="14" height="14">
<b>基础数据管理>>物料维护>>上传物料图片</b>
</td>
</tr>
</table>
<hr width="97%" align="center" size=0>
<table width="95%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="29">
<div align="right">
物料代码:
</div>
</td>
<td>
</td>
</tr>
<tr>
<td height="26">
<div align="right">
物料名称:
</div>
</td>
<td>
</td>
</tr>
<tr>
<td height="26">
<div align="right">
物料规格:
</div>
</td>
<td>
</td>
</tr>
<tr>
<td height="26">
<div align="right">
物料型号:
</div>
</td>
<td>
</td>
</tr>
<tr>
<td height="26">
<div align="right">
类别:
</div>
</td>
<td>
</td>
</tr>
<tr>
<td height="26">
<div align="right">
计量单位:
</div>
</td>
<td>
</td>
</tr>
<tr>
<td height="74">
<div align="right">
图片:
</div>
</td>
<td>
<img src="../images/about.gif" width="85" height="49">
</td>
</tr>
<tr>
<td width="22%" height="29">
<div align="right">
<font color="#FF0000">*</font>选择图片:
</div>
</td>
<td width="78%">
<input name="fileName" type="file" class="text1" size="40" maxlength="40">
</td>
</tr>
</table>
<hr width="97%" align="center" size=0>
<div align="center">
<input name="btn_upload" class="button1" type="submit"
id="btn_upload" value="上传">
<input name="btnBack" class="button1" type="button" id="btnBack"
value="返回" onClick="history.go(-1)">
</div>
</div>
</form>
</body>
</html>
web.xml配置自己应该可以完成的吧,也可以选择向导,很简单的...
分享到:
相关推荐
commons fileupload 上传组件 jar包 源码 commons fileupload 上传组件 jar包 源码 commons fileupload 上传组件 jar包 源码
jsp上传组件包含commons-fileupload.jar和commons-io.jar,目前最流行的jsp上传组件
apache commons.fileupload上传组件在上传文件时,在调用parseRequest方法时,先将输入流上传到服务器临时目录,在之后的文件处理过程中,再将临时目录下保存的文件复制到指定的目录,多了一道转储步骤。本实现抽取...
Java借助commons-fileupload组件实现文件上传所需包 Apache Commons FileUpload 1.4 (requires Java 1.6 or later) Note: This version of Commons FileUpload also requires Commons IO 2.2.
上传组件Commons fileUpload.jar剖析 兔子Java 系列之2 - Commons fileUpload.doc
博文链接:https://mqzsweet.iteye.com/blog/141965
文章为本人所写,向初学者展示了如何进行基于commons-fileupload组件的上传下载的详细开发过程。细致的说明相信能给您带来帮助。
采用apache commons 项目中的fileupload组件,实现了文件上传功能,它能够便利而简单地使得web应用程序和servlet具备高性能的文件上传能力,减小了直接操作输入输出流的系统开销。
整个代码 博文链接:https://canofy.iteye.com/blog/143075
文件的上传下载,Commons fileupload 组件
Apache上传下载组件commons-fileupload,commons-ioApache上传下载组件commons-fileupload,commons-ioApache上传下载组件commons-fileupload,commons-io
用于servlet文件上传的组件,方便初学java web开发的人下载使用
java_文件上传组件_Apache_Commons_FileUpload_应用指南
commons-fileupload-1.0上传组件使用实例.以及使用组件的乱码问题。
文件上传组件commons-fileupload用户指南文件上传组件commons-fileupload用户指南
抽取了apache commons.fileupload的最基本代码,组合成一个简单的文件上传组件
本资源为处理表单文件上传的一个开源组件( Commons-fileupload ),该组件性能优异,并且其API使用极其简单,可以让开发人员轻松实现web文件上传功能,因此在web开发中实现文件上传功能,通常使用Commons-...
commons-lang-2.3.jar,在使用组件实现文件上传时候要注意前后台的一致性,注意在后台定义File文件对象名要与jsp页面中的file标签name名字一致,前台form标签属性一定要设置为enctype="multipart/form-data",而且...