使用commons-fileupload实现文件上传
一、准备:
1、 下载commons-fileupload库,下载地址:http://commons.apache.org/fileupload/
2、 下载commons-fileupload依赖库commons-io,下载地址:http://commons.apache.org/io/
二、表单页面:
<form name="uploadform" method="post" action="save.jsp" enctype="multipart/form-data">
<table border="1" width="450" cellpadding="4" cellspacing="2" bordercolor="#9bd7ff">
<tr>
<td width="100%" colspan="2">
文件1:<input name="file1" size="40" type="file">
</td>
</tr>
<tr>
<td width="100%" colspan="2">
文件夹:<input name="dir" size="40" type="text">
</td>
</tr>
<tr>
<td align="center">
<input name="upload" type="submit" value="开始上传">
</td>
</tr>
</table>
</form>
三、表单处理页面:
<%!
// 处理表单中的非文件上传域
void processFormField(FileItem fileItem,JspWriter out) throws IOException{
if(fileItem.isFormField()) {
String name=fileItem.getFieldName();
String value=new String(fileItem.getString().getBytes("iso-8859-1"),"UTF-8");
String fileName=fileItem.getName();
out.println("===================<br>");
out.println("FieldName: " + name + "<br>");
out.println("FieldValue: " + value + "<br>");
out.println("FileName: " + fileName + "<br>");
out.println("===================<br><br>");
}
}
// 处理表单中的文件上传域
void processUploadedFile(FileItem fileItem, JspWriter out) throws IOException{
if(!fileItem.isFormField()) {
String fieldName=fileItem.getFieldName();
String fileName=fileItem.getName();
String contentType=fileItem.getContentType();
boolean isInMemory=fileItem.isInMemory();
long sizeInBytes=fileItem.getSize();
// 打印文件信息
out.println("===================<br>");
out.println("FieldName: " + fieldName + "<br>");
out.println("FileName: " + fileName + "<br>");
out.println("ContentType: " + contentType + "<br>");
out.println("Size: " + sizeInBytes + "<br>");
out.println("===================<br><br>");
// 保存文件
}
}
%>
<%
// 是否支持文件上传
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
// 如果isMultipart为false,表单的编码格式将不支持文件上传
if(isMultipart){
// 设置文件上传Bean属性
// 文件上传Bean,在内存中用于存放上传文件的内存大小为10*1024*1024byte
// 如果超出这个大小,将存放在临时文件夹D:/temp下
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File("D://temp"));
factory.setSizeThreshold(10*1024*1024);
// 分析上传文件
ServletFileUpload upload = new ServletFileUpload(factory);
List items = upload.parseRequest(request);
// 处理上传文件
Iterator iter=items.iterator();
while(iter.hasNext()){
FileItem item =(FileItem)iter.next();
if(item.isFormField()) {
// 处理非文件上传域
processFormField(item, out);
} else {
// 处理文件上传域
processUploadedFile(item, out);
}
}
}
%>
使用commons-fileupload实现文件上传----源代码2007-12-30 20:53完整的源代码:
index.jsp:
<%@page
contentType="text/html"%>
<%@page
pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd
">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>文件上传演示</title>
</head>
<body>
<center>
<h1>文件上传演示</h1>
<form name="uploadform" method="post" action="save.jsp" enctype="multipart/form-data">
<table border="1" width="450" cellpadding="4" cellspacing="2" bordercolor="#9bd7ff">
<tr>
<td width="100%" colspan="2">
文件夹:<input name="dir" size="40" type="text">
</td>
</tr>
<tr>
<td width="100%" colspan="2">
文件1:<input name="file1" size="40" type="file">
</td>
</tr>
<tr>
<td width="100%" colspan="2">
文件2:<input name="file2" size="40" type="file">
</td>
</tr>
<tr>
<td width="100%" colspan="2">
文件1:<input name="file3" size="40" type="file">
</td>
</tr>
<tr>
<td align="center">
<input name="upload" type="submit" value="开始上传">
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
save.jsp:
<%@page
contentType="text/html"%>
<%@page
pageEncoding="UTF-8"%>
<%@page
import="org.apache.commons.fileupload.*"%>
<%@page
import="org.apache.commons.fileupload.servlet.*"%>
<%@page
import="org.apache.commons.fileupload.disk.*"%>
<%@page
import="java.io.*"%>
<%@page
import="java.util.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd
">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>保存上传文件</title>
</head>
<body>
<%!
String mySaveDir = null;
// 处理表单中的非文件上传域
void processFormField(FileItem fileItem,JspWriter out) throws IOException{
if(fileItem.isFormField()) {
String name=fileItem.getFieldName();
String value=new String(fileItem.getString().getBytes("iso-8859-1"),"UTF-8");
// 输出域信息
out.println("===================<br>");
out.println("FieldName: " + name + "<br>");
out.println("FieldValue: " + value + "<br>");
out.println("===================<br><br>");
// 如果为文件夹dir域
if(name.equals("dir")) {
mySaveDir = value.trim();
System.out.println("获得dir");
}
}
}
// 处理表单中的文件上传域
void processUploadedFile(FileItem fileItem, JspWriter out)
throws IOException, Exception{
if(!fileItem.isFormField()) {
String fieldName=fileItem.getFieldName();
String fileName=fileItem.getName();
String contentType=fileItem.getContentType();
boolean isInMemory=fileItem.isInMemory();
long sizeInBytes=fileItem.getSize();
// 输出文件信息
out.println("===================<br>");
out.println("FieldName: " + fieldName + "<br>");
out.println("FileName: " + fileName + "<br>");
out.println("ContentType: " + contentType + "<br>");
out.println("Size: " + sizeInBytes + "<br>");
out.println("===================<br><br>");
// 保存文件
// 保存在D:/images/下
String imageDir = "D://images//";
System.out.println("当前的dir:" + mySaveDir);
if(mySaveDir != null && !mySaveDir.trim().equals("")){
imageDir = mySaveDir;
System.out.println("Images的dir:" + imageDir);
}
// 不存在指定的文件夹,创建此文件夹
File saveDir = new File(imageDir);
if(!saveDir.exists()) {
saveDir.mkdirs();
}
// 不存在指定的文件,创建此文件
File saveFile= new File(saveDir, fileName);
if(!saveFile.exists()) {
saveFile.createNewFile();
}
fileItem.write(saveFile);
}
}
%>
<%
// 是否支持文件上传
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
// 如果isMultipart为false,表单的编码格式将不支持文件上传
if(isMultipart){
// 设置文件上传属性
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File("D://temp"));
factory.setSizeThreshold(10*1024*1024);
// 分析上传文件
ServletFileUpload upload = new ServletFileUpload(factory);
List items = upload.parseRequest(request);
// 显示上传文件
Iterator iter=items.iterator();
while(iter.hasNext()){
FileItem item =(FileItem)iter.next();
if(item.isFormField()) {
// 处理非文件上传域
processFormField(item, out);
} else {
// 处理文件上传域
processUploadedFile(item, out);
}
}
}
%>
</body>
</html>
分享到:
相关推荐
使用commons-fileupload上传文件 使用commons-fileupload上传文件
commons-fileupload实现文件上传
使用commons-fileupload实现的文件上传和下载,上传和下载都没有中文乱码问题
commons-fileupload实现文件上传下载
java+servlet+commons-io-2.4.jar+commons-fileupload-1.3.jar实现文件的上传与下载
commons-lang-2.3.jar,在使用组件实现文件上传时候要注意前后台的一致性,注意在后台定义File文件对象名要与jsp页面中的file标签name名字一致,前台form标签属性一定要设置为enctype="multipart/form-data",而且...
用commons-fileupload实现文件上传功能,两个文件搞定!!!!
利用servlet实现的commons-fileupload的实例。也就是文件上传实例。
commons-fileupload-1.3.jar和commons-io-1.2.jar
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-...
这是我结合网络资源。。和我对一些平时知识积累做的一个文件上传。。可能还存在漏洞。。请爱学者补全。。它将是一个完美的文件上传资料。。希望能给你的学习带来方便
java实现文件保存,接收所需的jar包,(commons-fileupload-1.2.1.jar,commons-io-2.0.1.jar),亲测可用
使用 commons-fileupload 文件上传 图片上传 demo 可以直接部署使用 内含 commons-fileupload-1.2.2.jar commons-io.jar
commons-fileupload-1.2.1-bin commons-fileupload 文件上传 commons-fileupload-1.2.1-bin commons-fileupload 文件上传 jar包 及相关文档
commons-fileupload.rar;包括commons-fileupload-1.3.1-bin和commons-io-2.4两个文件;文件上传接口需要这个包;
commons-fileupload-1.2.2.jar是一款可以实现文件上传功能的jar依赖包,一般进行应用开发的朋友会用到这个开发包,下载后放到应用程序的WEB-INF\lib下就可以正常使用了,有从事web开发的朋友不要错过。
commons-fileupload-1.3.1库文件下载,用于实现文件上传
commons-fileupload-1.2.2-bin.zip一个文件上传的第三方插件
Apache的commons-fileupload.jar可方便的实现文件的上传功能
commons-fileupload apache开源项目,实现文件上传下载功能 ssh上传时必配