最近在做一个文件上传的功能,支持单个文件和多个文件上传。项目中所需要用到的jar包为commons-fileupload-1.2.1.jar ,commons-io -1.4.jar ,把该两个jar包放到WEB-INF/lib下即可,这两个jar包可以http://www.apache.org/上下载。
下面为部分代码:
upload.jsp:
<form action="FileUpload" method="post" enctype="multipart/form-data" name="form1">
<input type="file" name="file">
<input type="file" name="file">
<input type="submit" name="Submit" value="upload">
</form>
uploadFile.java:
public static boolean uplodaFile(HttpServletRequest request){
String uploadFilePath="c://";
String tempPath="c://";
boolean flag = false;
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File(tempPath));
//设置缓冲区大小 4K
factory.setSizeThreshold(4096);
ServletFileUpload sfu = new ServletFileUpload(factory);
// 设置最大文件尺寸,这里是100MB
sfu.setFileSizeMax(100*1024*1024);
try {
List<FileItem> item = sfu.parseRequest(request);
Iterator<FileItem> it =item.iterator();
while(it.hasNext()){
FileItem fileItem =(FileItem)it.next();
//获得文件名,包含上传的路径
String fileName= fileItem.getName();
if(fileName!=null){
//获得文件名
String Name=fileName.substring(fileName.lastIndexOf("//")+1,fileName.length());
if(!Name.equals("")){
fileItem.write(new File(uploadFilePath+Name)) ;
}
}
}
flag =true ;
} catch (FileUploadException e) {
flag = false;
System.out.println("FileUploadException!");
} catch (Exception e) {
flag = false;
System.out.println("fileItem.write() Exception!");
}
return flag;
}