New file |
| | |
| | | package com.dy.pipIrrWebFile.fm; |
| | | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.http.MediaType; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 分布式web文件系统管理系统 |
| | | */ |
| | | @Slf4j |
| | | @RestController |
| | | @RequestMapping(path="fm") |
| | | @SuppressWarnings("unchecked")//java版本越高,对泛型约束越严,所以配置SuppressWarnings("unchecked") |
| | | public class FmCtrl { |
| | | |
| | | /** |
| | | * 生成文件名,并且计算出该文件名对应的文件服务器属性 |
| | | * 文件名称是不带路径的名称,例如:20170818153254_100000007.jpg,文件名中不能有“/”或“\”字符 |
| | | * @param fileExtName 文件扩展名 |
| | | * @return |
| | | */ |
| | | @PostMapping(path = "create") |
| | | public FileRestVo create(String fileExtName){ |
| | | FileRestVo rvo = new FileRestVo() ; |
| | | if(fileExtName != null && !fileExtName.trim().equals("")){ |
| | | try { |
| | | String id = new FileNameIdUtil().generate(); |
| | | if(id != null){ |
| | | rvo.fileName = FileName.createFileName(false, id, fileExtName) ; |
| | | rvo = new RestHashDeal().fileTransRest(rvo.fileName, rvo) ; |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | return rvo ; |
| | | } |
| | | |
| | | /** |
| | | * 解析文件名(带或不带相对路径),计算出该文件名对应的文件服务器属性 |
| | | * 文件名称可以是不带路径的名称,例如:20170818153254_100000007.jpg |
| | | * 文件名称可以是带路径的名称,例如:webFile/photo/20170818153254_100000007.jpg |
| | | * @param filePath |
| | | * @return |
| | | */ |
| | | @PostMapping(path = "parsePath") |
| | | public FileRestVo parsePath(String filePath){ |
| | | FileRestVo rvo = new FileRestVo() ; |
| | | if(filePath != null && !filePath.trim().equals("")){ |
| | | try { |
| | | int index = filePath.lastIndexOf("\\") ; |
| | | if(index > 0){ |
| | | filePath = filePath.substring(index + 1); |
| | | } |
| | | index = filePath.lastIndexOf("/") ; |
| | | if(index > 0){ |
| | | filePath = filePath.substring(index + 1); |
| | | } |
| | | index = filePath.lastIndexOf("?") ; |
| | | if(index > 0){ |
| | | filePath = filePath.substring(0, index); |
| | | } |
| | | rvo.fileName = filePath ; |
| | | rvo = new RestHashDeal().fileTransRest(filePath, rvo) ; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | return rvo ; |
| | | } |
| | | /** |
| | | * 解析文件名,并且计算出该文件名对应的文件服务器属性 |
| | | * 文件名称可以是不带路径的名称,例如:20170818153254_100000007.jpg |
| | | * 文件名称可以是带路径的名称,例如:webFile/photo/20170818153254_100000007.jpg |
| | | * @param filePaths |
| | | * @return |
| | | */ |
| | | @PostMapping(path = "parsePathList", consumes = MediaType.APPLICATION_JSON_VALUE)//前端提交json数据 |
| | | public FileRestVo[] parsePathList(List<String> filePaths){ |
| | | List<FileRestVo> rList = new ArrayList<FileRestVo>() ; |
| | | if(filePaths != null && filePaths.size() > 0){ |
| | | try { |
| | | for(String filePath : filePaths){ |
| | | FileRestVo rvo = new FileRestVo() ; |
| | | int index = filePath.lastIndexOf("\\") ; |
| | | if(index > 0){ |
| | | filePath = filePath.substring(index + 1); |
| | | } |
| | | index = filePath.lastIndexOf("/") ; |
| | | if(index > 0){ |
| | | filePath = filePath.substring(index + 1); |
| | | } |
| | | index = filePath.lastIndexOf("?") ; |
| | | if(index > 0){ |
| | | filePath = filePath.substring(0, index); |
| | | } |
| | | rvo.fileName = filePath ; |
| | | rvo = new RestHashDeal().fileTransRest(filePath, rvo) ; |
| | | rList.add(rvo) ; |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | return rList.toArray(new FileRestVo[0]) ; |
| | | } |
| | | |
| | | /** |
| | | * 解析哈希值,计算出该哈希值对应的文件服务器属性 |
| | | * @param hashCode |
| | | * @return |
| | | */ |
| | | @PostMapping(path = "parseHashcode") |
| | | public FileRestVo parseHashcode(Integer hashCode){ |
| | | FileRestVo rvo = new FileRestVo() ; |
| | | if(hashCode != null){ |
| | | try { |
| | | rvo.fileName = null ; |
| | | rvo = new RestHashDeal().fileTransRest(hashCode, rvo) ; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | return rvo ; |
| | | } |
| | | |
| | | /** |
| | | * 解析哈希值集合,计算出该这些哈希值对应的文件服务器属性 |
| | | * @param hashCodes |
| | | * @return 文件服务器属性对象集合 |
| | | */ |
| | | @PostMapping(path = "parseHashcodeList") |
| | | public FileRestVo[] parseHashcodeList(List<Integer> hashCodes){ |
| | | List<FileRestVo> reList = new ArrayList<>() ; |
| | | if(hashCodes != null && hashCodes.size() > 0){ |
| | | for(Integer hashCode : hashCodes){ |
| | | reList.add(parseHashcode(hashCode)) ; |
| | | } |
| | | } |
| | | return reList.toArray(new FileRestVo[0]) ; |
| | | } |
| | | |
| | | |
| | | } |