JSP Uploader上传文件

本文介绍了一个使用JSP实现的文件上传表单及其后台处理逻辑。通过Uploader类解析HTTP请求中的文件数据,并采用时间戳与随机数组合的方式避免文件重名。最终将文件保存到服务器指定目录。
-----------------------------------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();
            }
            
         }
    } 
 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值