Spring MVCファイルアップロードとダウンロード2およびページング機能


サービス方法public List>handleMultipartRequest(String file Guid,MultiparartRequest request,HttpServiceleRequest htttpServiceRequest)throws Exception{List>uploadFilleList=new ArrayList>();Set>>params=request.getMultiFileMap().entrySet();if(StringUtils.isEmpty(file Guid){file Guid=guidGeneratorUtil.getUtil.getUUtil.getUUtil.getUUtil.getUtil.getUtil.getUtil.getUtil.getUtil.getUtil ID();}for(Entry> param : params) {for(MultipartFile file: param.getValue()) {if(StringUtils.isEmpty(file.getOriginalFilename())) {logger.info("key=uploadfile File OriginalFilename is Empty.");continue;}Map fileMap= handleMultipartFile(file);fileMap.put("FileGuid", fileGuid);fileUploadDataDao.insertFileUploadData(fileMap);uploadFileList.add(fileMap);}}return uploadFileList;}
public Map handleMultipartFile(MultipartFile file) throws Exception{
    Map rMap=new HashMap<>();
    String msg = null;
    String extensionName=getExtensionName(file.getOriginalFilename());
    if(!checkFileExtensionName(extensionName)) {
         msg = String.format("key=uploadfile FileExtensionName:%s       ", extensionName);
        //logger.error(msg);
        throw new Exception(msg);
    }
    String fileId=guidGeneratorUtil.getFileId();
    rMap.put("FileId", fileId);
    StringBuilder fileSB=new StringBuilder();
    DateFormat dFormat=new SimpleDateFormat("yyyyMMdd");
    Date date =new Date();
    fileSB.append(uploadPath+dFormat.format(date));
    File destParnetFile=new File(fileSB.toString());
    if(!destParnetFile.exists()) {
        destParnetFile.mkdirs();  //       ,   
    }
    File dest=new File(fileSB.toString(), fileId);
    try {
        file.transferTo(dest);  //         
    } catch (IllegalStateException | IOException e) {
        msg=String.format("key=uploadfile %s", e.getMessage());
        //logger.error(msg);
        throw new Exception(msg); 
    }
    rMap.put("FilePath", fileSB.toString());
    rMap.put("FileName", file.getOriginalFilename());
    rMap.put("FileType", extensionName);
    rMap.put("FileSize", file.getSize());
    return rMap;

}

/**
 * @param fileName
 * @return
 */
public String getExtensionName(String fileName) {
    String extensionName="";
    if(StringUtils.isEmpty(fileName)) {
        return extensionName;
    }
    int startIndex=fileName.indexOf(".");
    extensionName=fileName.substring(startIndex+1);
    return extensionName;
}

/**
 * @param extensionName       
 * @return    true    ,  false     
 */
private Boolean checkFileExtensionName(String extensionName) {
    boolean flag=false;  
    if(StringUtils.isEmpty(extensionName)) {
        return flag;
    }
    String[] appExtArr=StringUtils.tokenizeToStringArray(appExtStr, ",");
    for (String m : appExtArr) {
        if(extensionName.equals(m)) {
            flag=true;
            break;
        }
    }

    return flag;
}

public List>  getFileUploadDataList(Map map){
    List> rList = new ArrayList<>();
    rList=fileUploadDataDao.getFileUploadDataList(map);
    return rList;
}

public int  getFileUploadDataListCnt(Map map) {
    int result=0;
    result = fileUploadDataDao.getFileUploadDataListCnt(map);
    return result;
}

public File getUploadFile(Map map) throws Exception {
    Map fileMap= fileUploadDataDao.getFileUploadData(map).get(0);
    if(fileMap == null || fileMap.size() <=0) {
        throw new Exception("file data does not exist.");
    }
    StringBuilder sb = new StringBuilder();
    sb.append(fileMap.get("FilePath"));
    sb.append("/");
    sb.append(fileMap.get("FileId"));
    return new File(sb.toString());

}

SQL  


    
        select
        @@IDENTITY as id
    
    INSERT INTO [dbo].[AA_FileUploadData]
    ([FileGuid]
    ,[FileId]
    ,[FilePath]
    ,[FileName]
    ,[FileType]
    ,[FileSize]
    ,[CreateTime])
    VALUES
    (
    #{FileGuid},
    #{FileId},
    #{FilePath},
    #{FileName},
    #{FileType},
    #{FileSize},
    GetDate()
    )

    

;


    SELECT * FROM (
    SELECT ROWNUM AS "ROWNUMBER" , AA.* FROM (



    ) AA ) AAA
     = #{firstRowIndex} AND  AAA.ROWNUMBER  <= #{lastRowIndex}
     ]]>



    SELECT FLOOR((AA.totalCount-1)/#{rowPerPage})+1 totalPage , AA.* FROM (
    SELECT COUNT(*) OVER() totalCount, ROWNUM ROWNUMBER,MAINSQL.* FROM
    (




    ) MAINSQL 
     =((#{pageNo}-1)*#{rowPerPage})+1 AND ROWNUMBER <= (((#{pageNo}-1)*#{rowPerPage})+1) + #{rowPerPage}-1 ]]>

br/>固定文字列注記@Value("${file.extension.approve.list}")private String appExtStr;configuration.propertiesプロパティファイルfile.extension.approve.list=dat,doc,docx,xlsx,xls,ppt,pptx,txt,gif,jpg,png,pdf,bmp,zipfile.upload.path.localhost=F:/sprout/upload/applicationContent.xmlファイル導入プロパティファイル構成location="classpath:META-INF/properties/*.properties"/>