1. 从www.apache.org的common项目下搞到commons-fileupload.jar 和commons-io.jar,导入项目。
2. jsp页面中,form的属性设置要求为:
<form action="uploadServlet" method="post" enctype="multipart/form-data">
其中,post和multipart/form-data要求必须指定。
3. 创建处理请求的Servlet:
DiskFileItemFactory factory = new DiskFileItemFactory();
// 获得项目根路径
String path = request.getRealPath("/");
// 设置缓存路径
factory.setRepository(new File(path));
// 设置文件缓存到硬盘的大小临界值
factory.setSizeThreshold(1024 * 1024);
ServletFileUpload servletFileUpload = new ServletFileUpload(factory);
try {
// 指定解析request
List<FileItem> list = (List<FileItem>)
servletFileUpload.parseRequest(request);
for (FileItem item : list)
{
// 非文件的表单字段
if (item.isFormField() == true){
String filedName = item.getFieldName(); // 获得字段名
String value = item.getString("UTF-8"); // 获得字段值
System.out.println("fieldName=" + filedName);
System.out.println("value=" + value);
}else{ //文件表单字段
String fieldName = item.getFieldName(); // 获得字段名
String value = item.getName(); // 获得文件名
System.out.println("fieldName=" + fieldName);
System.out.println("file path=" + value);
// 处理浏览器兼容问题处理
int index = value.lastIndexOf("\\");
String fileName = value.substring(index + 1);
item.write(new File(path, fileName));
}
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e);
}
4. 如果还想要用Ext美化一下客户端的话:
Ext.onReady(function()
{
var msg = function(title, msg){
Ext.Msg.show({
title: title,
msg: msg,
minWidth: 200,
modal: true,
icon: Ext.Msg.INFO,
buttons: Ext.Msg.OK
});
};
var fp = new Ext.form.FormPanel({
baseCls: 'x-plain',
//renderTo: 'fiform',
fileUpload: true,
labelWidth: 60,
url:'uploadServlet',
defaults:{
anchor: '95%',
allowBlank: false,
msgTarget: 'side'
},
//bodyStyle: 'padding: 10px 10px 0 10px;',
items:
[
{
xtype: 'textfield',
fieldLabel: '用户名',
name: 'user',
inputType: 'text'//文件类型
},
{
xtype: 'textfield',
fieldLabel: '密 码',
name: 'password',
inputType: 'password'//文件类型
},
{
height: 23,
xtype: 'textfield',
fieldLabel: '文件名',
name: 'file',
inputType: 'file'//文件类型
}
],
buttons: [{
text: '上传',
handler: function(){
if(fp.getForm().isValid()){
fp.getForm().submit({
waitMsg: 'Uploading your photo...',
success: function(fp, o){
fp.getForm().reset();
msg('Success', 'cool~~');
},
failure : function(fp, o){
msg('failure', 'pool~~');
}
});
}else{
Ext.MessageBox.alert("提示","请填写必要的字段!");
}
}
},{
text: '清空',
handler: function(){
fp.getForm().reset();
}
}]
});
var window = new Ext.Window({
title: 'Resize Me',
width: 500,
autoHeight: true,
minWidth: 300,
layout: 'fit',
plain:true,
bodyStyle:'padding:5px;',
buttonAlign:'center',
items: fp
});
window.show();
});
效果如图:
- 大小: 7.2 KB
分享到:
相关推荐
项目中需要 org.apache.commons.io.IOUtils的可以下载此包,fileupload组件依赖的commons-io组件
抽取了apache commons.fileupload的最基本代码,组合成一个简单的文件上传组件
本实现抽取了apache commons.fileupload的最基本代码,组合成一个简单的文件上传组件,对parseRequest方法进行了改进,对于文件,直接存储到指定的上传目录,加快了上传速度。使用本程序时,注意上传端的参数设置,...
文件上传组件commons-fileupload用户指南文件上传组件commons-fileupload用户指南
commons fileupload 上传组件 jar包 源码 commons fileupload 上传组件 jar包 源码 commons fileupload 上传组件 jar包 源码
java_文件上传组件_Apache_Commons_FileUpload_应用指南
Apache上传下载组件commons-fileupload,commons-ioApache上传下载组件commons-fileupload,commons-ioApache上传下载组件commons-fileupload,commons-io
采用apache commons 项目中的fileupload组件,实现了文件上传功能,它能够便利而简单地使得web应用程序和servlet具备高性能的文件上传能力,减小了直接操作输入输出流的系统开销。
用开源的FileUpload组件,可以很方便的给自己的系统添加功能强大的文件上传模块。 该资源文件是两个jar打包成的压缩文件。
Apache Commons是一个非常有用的工具包,解决各种实际的通用问题。(附件中提供了该工具包的jar包,及源文件以供研究) BeanUtils Commons-BeanUtils 提供对 Java 反射和自省API的包装 Betwixt Betwixt提供将 ...
common-fileupload组件是apache的一个开源项目之一,可以从http://jakarta.apache.org/commons/fileupload/下载。该组件简单易用,可实现一次上传一个或多个文件,并可限制文件大小。 -下载后解压zip包,将commons-...
文件上传组件_Apache_Commons_FileUpload_应用指南.pdf
文件上传组件_Apache_Commons_FileUpload_应用指南.doc
在使用Commons-FileUpload组件之前,首先要在项目中添加这两个Jar文件,添加完Jar后,在JSP文件中还需要将Commons-FileUpload组件所使用的类库导入JSP文件中,代码如下:<% page import="org.apache.commons....
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.
import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class FileUploadServlet extends HttpServlet { // 定义文件的上传...
浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件。
介绍了Apache Jakarta Commons 项目下Java组件,如FileUpload, HttpClient, DBCP,BeanUtils,Logging,Lang, 以及 Collections,Codec等,是学习和使用Apache Jakarta Commons良好的参考使用手册。
该上传的实现使用到了apache公司的fileupload组件。通过“上传页面”把上传路径提交到upload.jsp页面进行处理,然后把照片文件上传并保存到服务器上。处理代码如下: (); ServletFileUpload upload = new ...