【文件属性】:
文件名称:commons-fileupload-1.2.1
文件大小:1.05MB
文件格式:ZIP
更新时间:2014-04-15 10:47:38
commons-fileupload-1.2.1
WEB开发中,用于上传和下载文件
//得到上传文件的保存目录
String uploadpath = this.getServletContext().getRealPath("/WEB-INF/upload");
String temppath = this.getServletContext().getRealPath("/WEB-INF/temp");
try{
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File(temppath));
ServletFileUpload upload = new ServletFileUpload(factory);
//upload.setFileSizeMax(1024*1024);
upload.setHeaderEncoding("UTF-8");
if(upload.isMultipartContent(request)==false){
return;
}
upload.setProgressListener(new ProgressListener(){
public void update(long pBytesRead, long pContentLength, int pItems) {
System.out.println("文件总大小为:" + pContentLength +",当前已上传:" + pBytesRead);
}
});
List
list = upload.parseRequest(request);
for(FileItem item : list){
if(item.isFormField()){
String name = item.getFieldName(); //拿到输入项的名称
String value = item.getString("UTF-8");
//value = new String(value.getBytes("iso8859-1"),"UTF-8");
System.out.println(name + "=" + value);
}
else{
try{
InputStream in = item.getInputStream(); //获得与文件相关联的输入流
String filename = item.getName();
filename = filename.substring(filename.lastIndexOf("\\")+1);
//String ext = filename.substring(filename.lastIndexOf(".")+1); //adfdfsdfsfd -1 5
if(filename==null || filename.trim().equals("")){
continue;
}
String saveFilename = makeFilename(filename);
String savePath = makeSavePath(saveFilename, uploadpath);
FileOutputStream out = new FileOutputStream(savePath + "\\" + saveFilename);
byte buffer[] = new byte[1024];
int len = 0;
while((len = in.read(buffer))>0){
out.write(buffer, 0, len);
}
in.close();
out.close();
}finally{
if(item!=null)
item.delete();
}
}