-----------------------------------JSP页面------------------------------------------------------
<form name="form1" method="post" action="SaveFile.do" enctype="multipart/form-data">
<tr bgcolor="#f7f7f7" >
<td class="efLb" rowspan="3" width="12%">附件:</td>
<td colspan="3" class="efEditRight">
<input type="file" name="file1" size="35"></td>
</tr>
<tr bgcolor="#ffffff" >
<td colspan="3" class="efEditRight">
<input type="file" name="file2" size="35">
</td>
</tr>
<tr bgcolor="#f7f7f7" >
<td colspan="3" class="efEditRight">
<input type="file" name="file3" size="35">
</td>
</tr>
</form>
------------------------------------处理---------------------------------------------------
//获取附件
Uploader uploader=new Uploader(request,response);
//设置其它属性
uploader.upload();//解析上传数据。
uploader.setDeniedFiles("exe,com");
uploader.setMaxFileSize(10*1024*1024);
String fileroot=request.getRealPath("/infordp/uploadfile");
//uploader.setSavePath(fileroot);
//uploader.save2File();//将上传文件保存到服务器上的指定目录中?
UploadFiles files=uploader.getUploadFiles();
this.saveFiles(files,fileroot);
---------------------------------方法(可以避免重名)---------------------------------------------------------
新文件名==文件名+当前时间+取随即数2位。
private void saveFiles(UploadFiles files,String fileroot) throws Exception{
for(int m=0;m<files.getCount();m++){
if(files.getFile(m).getSize()>0){
String newFileName =files.getFile(m).getFileName();
int n=100; //随机数的上限
String fileFinalName=newFileName.substring(0,newFileName.lastIndexOf(".")) +//不含后缀的原文件名
DateTimeUtil.formatDateTime(new Date(), "yyyyMMddHHmmss") + //当前时间
(new Random().nextInt(n))+ //取随机数2位
newFileName.substring(newFileName.lastIndexOf("."));//原文件名后缀
System.out.println(fileFinalName);
java.io.File file = new File(fileroot,fileFinalName);
java.io.FileOutputStream writer = new FileOutputStream(file);
writer.write(files.getFile(m).getData());
writer.close();
}
}
}
本文介绍了一个使用JSP实现的文件上传表单及其后台处理逻辑。通过Uploader类解析HTTP请求中的文件数据,并采用时间戳与随机数组合的方式避免文件重名。最终将文件保存到服务器指定目录。
3350

被折叠的 条评论
为什么被折叠?



