使用了 commons-fileupload-1.2.2.jar 和 commons-io-2.0.1.jar 两个组件。
后台 UploadServlet.java:
package upload;
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.ServletInputStream;
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.FileUploadBase.SizeLimitExceededException;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
@SuppressWarnings("rawtypes")
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
request.setCharacterEncoding("UTF-8");
StringBuilder msg = new StringBuilder();
final long maxSize = 1000 * 1024 * 1024;
final String[] suffix = new String[] {"jpg", "jpeg", "gif", "txt", "doc","mp3", "wma", "m4a","rar","zip"};
File tmpdir = new File("c:/tmpdir");
if (!tmpdir.exists()) {
tmpdir.mkdirs();
}
File uploaddir = new File("c:/uploaddir");
if (!uploaddir.exists()) {
uploaddir.mkdirs();
}
DiskFileItemFactory fac = new DiskFileItemFactory(1024*4, tmpdir);
ServletFileUpload upload = new ServletFileUpload(fac);
upload.setSizeMax(maxSize);
List fileList = null;
try {
fileList = upload.parseRequest(request);
} catch (FileUploadException e) {
if (e instanceof SizeLimitExceededException) {
out.println("<script>parent.callback('" + " 文件尺寸超过 " + maxSize + " 最大限制 " + "')</script>");
return;
}
e.printStackTrace();
}
if (fileList.size() > 0) {
for (Iterator it = fileList.iterator(); it.hasNext();) {
String path = "";
String filename = null;
long size = 0;
String fileSuffix = null;
boolean has = false;
FileItem item = (FileItem) it.next();
if (item == null || item.isFormField()) {
continue;
}
path = item.getName();
int temp = path.lastIndexOf("\\");
filename = temp != -1 ? path.substring(temp + 1) : path;
size = item.getSize();
if (!path.equals("") && size != 0) {
fileSuffix = path.substring(path.lastIndexOf(".") + 1);
for (String s : suffix) {
if (s.equals(fileSuffix)) {
has = true;
break;
}
}
if (!has) {
msg.append(filename + " 上传文件格式不正确 ");
continue;
}
try {
item.write(new File(uploaddir + File.separator + filename));
msg.append(filename + " 上传成功 ");
} catch (Exception e) {
msg.append(filename + " 上传失败 ");
e.printStackTrace();
}
}
}
}
out.println("<script>parent.callback('" + msg.toString() + "')</script>");
}
}
jsp 文件上传页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript">
function callback(msg)
{
/* document.getElementById("file").outerHTML = document.getElementById("file").outerHTML;*/
document.getElementById("msg").innerHTML = "<font color=red>"+msg+"</font>";
}
</script>
</head>
<body>
<form action="<%=path %>/UploadServlet" id="form1" name="form1" encType="multipart/form-data" method="post" target="hidden_frame" >
<input type="file" id="file" name="file" style="width:450"><br>
<input type="file" id="file" name="file" style="width:450"><br>
<input type="file" id="file" name="file" style="width:450"><br>
<input type="file" id="file" name="file" style="width:450"><br>
<input type="file" id="file" name="file" style="width:450"><br>
<input type="file" id="file" name="file" style="width:450"><br>
<INPUT type="submit" value="上传文件"><span id="msg"></span><br>
<font color="red">支持"jpg", "jpeg", "gif", "txt", "doc","mp3", "wma", "m4a","rar","zip"文件的上传</font>
<iframe name='hidden_frame' id="hidden_frame" style='display:none'></iframe>
</form>
</body>
</html>
分享到:
相关推荐
开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2...
赠送jar包:commons-fileupload-1.4.jar; 赠送原API文档:commons-fileupload-1.4-javadoc.jar; 赠送源代码:commons-fileupload-1.4-sources.jar; 赠送Maven依赖信息文件:commons-fileupload-1.4.pom; 包含...
赠送jar包:commons-fileupload-1.3.3.jar; 赠送原API文档:commons-fileupload-1.3.3-javadoc.jar; 赠送源代码:commons-fileupload-1.3.3-sources.jar; 赠送Maven依赖信息文件:commons-fileupload-1.3.3.pom;...
commons commons-fileupload历史版本jar包集合,包括src源码 附件列表: commons-fileupload-1.0.zip commons-fileupload-1.1.1.zip commons-fileupload-1.1.zip commons-fileupload-1.2.1-bin.zip commons-...
java+servlet+commons-io-2.4.jar+commons-fileupload-1.3.jar实现文件的上传与下载
commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-...
使用commons-fileupload上传文件 使用commons-fileupload上传文件
commons-fileupload-1.3.3.jar和commons-io-2.6.jar最新版本
使用commons-fileupload实现的文件上传和下载,上传和下载都没有中文乱码问题
commons-lang-2.3.jar,在使用组件实现文件上传时候要注意前后台的一致性,注意在后台定义File文件对象名要与jsp页面中的file标签name名字一致,前台form标签属性一定要设置为enctype="multipart/form-data",而且...
利用servlet实现的commons-fileupload的实例。也就是文件上传实例。
commons-fileupload-1.3.2.jar和commons-io-2.5.jar
commons-fileupload-1.4.jar
commons-fileupload-1.3.1.jar
commons-fileupload实现文件上传
commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar jar 文件。 commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar 案例上传: http://hi.baidu.com/lichao77821/blog commons-fileupload-1.2.1.jar和commons-...
commons-fileupload-1.3.2jar包和commons-io-2.5jar包,可以到http://commons.apache.org里面下载最新版本。
赠送jar包:commons-fileupload-1.3.3.jar; 赠送原API文档:commons-fileupload-1.3.3-javadoc.jar; 赠送源代码:commons-fileupload-1.3.3-sources.jar; 赠送Maven依赖信息文件:commons-fileupload-1.3.3.pom;...
commons-fileupload-1.3.jar和commons-io-1.2.jar
java实现文件保存,接收所需的jar包,(commons-fileupload-1.2.1.jar,commons-io-2.0.1.jar),亲测可用