`

上传附件【上传一个附件时】

    博客分类:
  • SSH
 
阅读更多

其中jsp页面中只需定义type=”file“,name="proReCheckFile"

在Aciton中,需要定义

priate File proReCheckFIle;

private String proReCheckFileFileName;

 

jsp页面:

 附件:<input type="file"  name="proReCheckFile" style="width:250px;"/>

Action类:

private File proReCheckFile;
private String proReCheckFileFileName;

public File getProReCheckFile() {
       return proReCheckFile;
 }
 public void setProReCheckFile(File proReCheckFile) {
       this.proReCheckFile = proReCheckFile;
 }
 public String getProReCheckFileFileName() {
  return proReCheckFileFileName;
 }
 public void setProReCheckFileFileName(String proReCheckFileFileName) {
  this.proReCheckFileFileName = proReCheckFileFileName;
 }
  

 

 逻辑代码:

     String uuid= null;
     String proReCheckFileName = "",savedProReCheckFileName = "";
     if(proReCheckFileFileName != null  && proReCheckFile!=null) {
            uuid = UUID.randomUUID().toString();
            savedProReCheckFileName = uuid + proReCheckFileFileName;
            proReCheckFileName=proReCheckFileFileName;
             //添加QA审核人以及上传前的文件名和上传后的文件名
             crObject.setProReCheckFileName(proReCheckFileName);
             crObject.setSavedproReCheckFileName(savedProReCheckFileName);
             crObject.setReChecker(reChecker);
             
UploadReCheckFileName.getFileName(proReCheckFile,proReCheckFileFileName,uuid);
   }

 

 

其中 UploadReCheckFileName中的方法是


import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class UploadReCheckFileName {
     private final static Log log = LogFactory.getLog("UploadReCheckFileName");
     private final static String FILE_UPLOAD_DIR;
     static{
           FILE_UPLOAD_DIR = System.getProperty("BASERESOURCEPATH") + "upload/proReCheckFile/";
      } 


     //获取savedProReCheckFileName)
     public static void getFileName(File attachments, String proReCheckFileName,String uuid){
                String savedProReCheckFileName = null;
                if(proReCheckFileName != null  && attachments!=null) {

                               savedProReCheckFileName = uuid + proReCheckFileName;
                               if(attachments != null){
                                  uploadReCheckFile(attachments,proReCheckFileName,  avedProReCheckFileName);
                                }
                     }
    }
 
 
    //TODO(上传文件)
    public static void uploadReCheckFile(File attachments,String proReCheckFileName,   String savedProReCheckFileName){ 
      if( proReCheckFileName == null || savedProReCheckFileName == null){
               log.error("上传文件失败,出现空指针.");
               return;
       }
       File uploadFile = new File(FILE_UPLOAD_DIR, savedProReCheckFileName);//指定要操作的文件
       InputStream is = null;
       OutputStream os = null;
      try {
                  //判断此文件上一级文件夹是否存在
                  if(!uploadFile.getParentFile().exists()){
                        uploadFile.getParentFile().mkdirs();//文件夹如果如果不存在,则自动创建多层目录
                        uploadFile.createNewFile();//创建文件
                }
              int len;
              byte[] buffer = new byte[1024];
               is = new FileInputStream(attachments);
               os = new FileOutputStream(uploadFile);
               while ((len = is.read(buffer)) != -1) {
                      os.write(buffer, 0, len);
                }
     } catch (Exception e) {
         log.error("当上传文件[proReCheckFileName: " + proReCheckFileName + "]时发生异常!", e);
         throw new RuntimeException(e);
    } finally {
        try {
              if (is != null) is.close();
              if (os != null) os.close();
         } catch (Exception e) {
              log.error("当关闭[proReCheckFileName: " + proReCheckFileName + "文件流时发生异常!", e);
              throw new RuntimeException(e);
         }
          log.info("上传完成![proReCheckFileName: " +

           proReCheckFileName + ", savedProReCheckFileName: " + savedProReCheckFileName + "]");
    }
   }
}

     

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics