FileUpload 组件使用注意:
1>
首先创建一个HTML页面。注意,凡是要上载文件的表单都必须设置enctype属性,且属性的值必须是multipart/form-data,同时请求方法必须是POST.
<form name="myform" action="fileuploaddemo.jsp" method="post" enctype="multipart/form-data">
2>commons-fileupload-1.1.jar和commons-io-1.1.jar 两个包都要引入,
因为在parseRequest(request)的类有关继承于DiskFileItem类。
3>示例
//检查表单是否正确
boolean isMultipart = FileUpload.isMultipartContent(request);
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
//文件最大,设为-1表示不受限制
upload.setSizeMax(4096);
//解析请求,把解析的结果放在一个List里面
List items = upload.parseRequest(request);
//缓存大小,设为-1表示不受限制
factory.setSizeThreshold(4096);
//设置临时目录
factory.setRepository(new File("D:\\temp"));
Iterator iter = items.iterator();
while( iter.hasNext() ){
FileItem item = (FileItem)iter.next();
//检查是一个普通的表单域还是File组件
if( !item.isFormField() ){
System.out.println("FileName:==>"+item.getName());
System.out.println("FieldName:==>"+item.getFieldName());
System.out.println("Size:==>"+item.getSize());
//item.getName 返回的是完整的文件名,如:E:\\xx\11.doc
//所以这里用一个fullFile来取文件名
File fullFile = new File(item.getName());
File uploadedFile = new File("D:\\ftp\\",fullFile.getName());
item.write(uploadedFile);
}
}