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;
|
|
/**
|
* 单点登录,
|
*/
|
@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 ;
|
}
|
|
|
}
|