您的位置:首页 > 编程语言 > Java开发

Java实现文件上传功能

2010-05-10 13:07 573 查看
文件上传代码:

public void uploadFile(){
try{
//创建临时文件夹
initFolder();
}catch(Exception e) {
e.printStackTrace();
makeJS(request,out,"创建临时文件夹失败!");
return;
}

DiskFileUpload fu = new DiskFileUpload();
// 设置缓存最大文件尺寸,这里是10MB
long sizeMax = 10*1024*1024;
// 设置上传最大文件尺寸,这里是5MB
long sizeMaxLimit = 5*1024*1024;
// 设置编码
fu.setHeaderEncoding("GBK");
// 设置最大文件尺寸
fu.setSizeMax(sizeMax);
// 设置缓冲区大小,这里是4kb
fu.setSizeThreshold(1024 * 1024);
// 设置临时目录:
fu.setRepositoryPath(SAVE_PATH);
// 得到所有的文件:
List fileItems;
try {
fileItems = fu.parseRequest(request);
Iterator i = fileItems.iterator();
// 依次处理每一个文件:
while (i.hasNext()) {
FileItem fi = (FileItem) i.next();
//验证文件大小不能超过5MB
if(fi.getSize()> sizeMaxLimit){
//makeJS(request,out,"上传文件不能大于5MB!");
fi.delete();//删除临时文件
return;
}
//验证文件格式(doc、xls)
if(!"application/msword".equals(fi.getContentType()) && !"application/vnd.ms-excel".equals(fi.getContentType())){
//makeJS(request,out,"上传文件只能是Excel或者Word格式!");
fi.delete();//删除临时文件
return;
}
// 获得文件名,这个文件名包括路径:
//String fileName = DataFormat.getIsoStr(fi.getName());
String fileName = fi.getName();
String toReceiptName = System.currentTimeMillis()
+ fileName.substring(fileName.lastIndexOf("."));
// 写入文件,可以从fileName中提取文件名:
fi.write(new File(SysConfig.RECEIPT_PATH + toReceiptName));
makeHtml(request,out,fileName,toReceiptName,fi.getContentType());
log.info("上传文件路径:" + fileName);
}
} catch (Exception e) {
e.printStackTrace();
//makeJS(request,out,"上传文件失败!");
}
}

 

要导入以下包:

commons-fileupload-1.1.1.jar

commons-io-1.4.jar
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息