New file |
| | |
| | | package com.dy.pipIrrGlobal.webCtrls; |
| | | |
| | | import com.dy.common.webUtil.BaseResponse; |
| | | import com.dy.common.webUtil.BaseResponseUtils; |
| | | import com.dy.pipIrrGlobal.dyFile.FileConstant; |
| | | import com.dy.pipIrrGlobal.dyFile.FileOperate; |
| | | import com.dy.pipIrrGlobal.dyFile.FileRestVo; |
| | | import com.dy.pipIrrGlobal.dyFile.FileVo; |
| | | import com.dy.pipIrrGlobal.pojoFi.WebFile; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.util.Date; |
| | | /** |
| | | * web文件上传 |
| | | */ |
| | | @Slf4j |
| | | @RestController |
| | | @RequestMapping(path="webFile") |
| | | public class WebFileCtrl { |
| | | |
| | | @Autowired |
| | | private FileOperate fileOp ; |
| | | |
| | | @Autowired |
| | | private WebFileSv sv ; |
| | | |
| | | @Value("${dy.webFile.fmUrl}") |
| | | private String fmUrl ; |
| | | |
| | | //支持的文件类型 |
| | | @Value("${dy.webFile.supportedFileTypes}") |
| | | private String supportedFileTypes ; |
| | | |
| | | //视频的缩略图的扩展名 |
| | | private static final String VideoZipPicFileType = "jpg"; |
| | | |
| | | /** |
| | | * 上传照片图片文件 (当前只对png jpg格式图片支持缩略图) |
| | | * @param file web端上传文件的post对象 |
| | | * @return 返回结果 |
| | | */ |
| | | @PostMapping("/upPhoto") |
| | | //参考:https://blog.zhengru.top/posts/33486.html#%E5%8D%95%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0 |
| | | public BaseResponse<?> upPhoto(MultipartFile file) { |
| | | try { |
| | | if (file != null) { |
| | | String[] fileNameGrp = fileOp.splitFileName(file) ; |
| | | if(fileNameGrp != null && fileNameGrp[0] != null && fileNameGrp[1] != null){ |
| | | if(!fileNameGrp[1].trim().equals("")){ |
| | | FileRestVo frVo = fileOp.saveFile(file, |
| | | fmUrl, |
| | | FileConstant.fileRequestMapping, |
| | | FileConstant.filePostMapping_photo, |
| | | FileConstant.NotRegionNum, |
| | | fileNameGrp[1], |
| | | null); |
| | | String fileMainName = fileOp.getFileMainName(frVo.fileName) ; |
| | | Long id = this.saveFileInfo(fileNameGrp[0], fileNameGrp[1], fileMainName, frVo.fileNameHash, frVo.fileWebPath); |
| | | FileVo fvo = new FileVo(id, |
| | | frVo.fileNameHash, |
| | | fileNameGrp[0], |
| | | fileNameGrp[1], |
| | | frVo.getFileWebPath(), |
| | | (frVo.getFileWebUrl() + frVo.getFileWebPath()), |
| | | fileOp.getFileZipPath(frVo.getFileWebUrl() + frVo.getFileWebPath()), |
| | | frVo.fileWebDownloadPath + id) ; |
| | | return BaseResponseUtils.buildSuccess(fvo) ; |
| | | }else { |
| | | return BaseResponseUtils.buildError("未得到上传文件的扩展名"); |
| | | } |
| | | }else { |
| | | return BaseResponseUtils.buildError("未能拆分上传文件名称"); |
| | | } |
| | | } else { |
| | | return BaseResponseUtils.buildError("未上传文件"); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("上传照片文件异常", e); |
| | | return BaseResponseUtils.buildException(e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 上传录音音频文件 |
| | | * @param file web端上传文件的post对象 |
| | | * @return 返回结果 |
| | | */ |
| | | @PostMapping("/upPhone") |
| | | public BaseResponse<?> upPhone(MultipartFile file) { |
| | | try { |
| | | if (file != null) { |
| | | String[] fileNameGrp = fileOp.splitFileName(file) ; |
| | | if(fileNameGrp != null && fileNameGrp[0] != null && fileNameGrp[1] != null){ |
| | | if(!fileNameGrp[1].trim().equals("")){ |
| | | FileRestVo frVo = fileOp.saveFile(file, |
| | | fmUrl, |
| | | FileConstant.fileRequestMapping, |
| | | FileConstant.filePostMapping_phone, |
| | | FileConstant.NotRegionNum, |
| | | fileNameGrp[1], |
| | | null); |
| | | String fileMainName = fileOp.getFileMainName(frVo.fileName) ; |
| | | Long id = this.saveFileInfo(fileNameGrp[0], fileNameGrp[1], fileMainName, frVo.fileNameHash, frVo.fileWebPath); |
| | | FileVo fvo = new FileVo(id, |
| | | frVo.fileNameHash, |
| | | fileNameGrp[0], |
| | | fileNameGrp[1], |
| | | frVo.getFileWebPath(), |
| | | frVo.getFileWebUrl() + frVo.getFileWebPath(), |
| | | null, |
| | | frVo.fileWebDownloadPath + id) ; |
| | | return BaseResponseUtils.buildSuccess(fvo) ; |
| | | }else { |
| | | return BaseResponseUtils.buildError("未得到上传文件的扩展名"); |
| | | } |
| | | }else { |
| | | return BaseResponseUtils.buildError("未能拆分上传文件名称"); |
| | | } |
| | | } else { |
| | | return BaseResponseUtils.buildError("未上传文件"); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("上传照片文件异常", e); |
| | | return BaseResponseUtils.buildException(e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 上传录像视频文件 |
| | | * @param file web端上传文件的post对象 |
| | | * @return 返回结果 |
| | | */ |
| | | @PostMapping("/upVideo") |
| | | public BaseResponse<?> upVideo(MultipartFile file) { |
| | | try { |
| | | if (file != null) { |
| | | String[] fileNameGrp = fileOp.splitFileName(file) ; |
| | | if(fileNameGrp != null && fileNameGrp[0] != null && fileNameGrp[1] != null){ |
| | | if(!fileNameGrp[1].trim().equals("")){ |
| | | FileRestVo frVo = fileOp.saveFile(file, |
| | | fmUrl, |
| | | FileConstant.fileRequestMapping, |
| | | FileConstant.filePostMapping_video, |
| | | FileConstant.NotRegionNum, |
| | | fileNameGrp[1], |
| | | null); |
| | | String fileMainName = fileOp.getFileMainName(frVo.fileName) ; |
| | | Long id = this.saveFileInfo(fileNameGrp[0], fileNameGrp[1], fileMainName, frVo.fileNameHash, frVo.fileWebPath); |
| | | FileVo fvo = new FileVo(id, |
| | | frVo.fileNameHash, |
| | | fileNameGrp[0], |
| | | fileNameGrp[1], |
| | | frVo.getFileWebPath(), |
| | | frVo.getFileWebUrl() + frVo.getFileWebPath(), |
| | | fileOp.getFileZipPath(frVo.getFileWebUrl() + frVo.getFileWebPath(), VideoZipPicFileType), |
| | | frVo.fileWebDownloadPath + id) ; |
| | | return BaseResponseUtils.buildSuccess(fvo) ; |
| | | }else { |
| | | return BaseResponseUtils.buildError("未得到上传文件的扩展名"); |
| | | } |
| | | }else { |
| | | return BaseResponseUtils.buildError("未能拆分上传文件名称"); |
| | | } |
| | | } else { |
| | | return BaseResponseUtils.buildError("未上传文件"); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("上传照片文件异常", e); |
| | | return BaseResponseUtils.buildException(e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 上传文档文件 |
| | | * @param file web端上传文件的post对象 |
| | | * @return 返回结果 |
| | | */ |
| | | @PostMapping("/upDocument") |
| | | public BaseResponse<?> upDocument(MultipartFile file) { |
| | | try { |
| | | if (file != null) { |
| | | String[] fileNameGrp = fileOp.splitFileName(file) ; |
| | | if(fileNameGrp != null && fileNameGrp[0] != null && fileNameGrp[1] != null){ |
| | | if(!fileNameGrp[1].trim().equals("")){ |
| | | String fileExtName = fileNameGrp[1]; |
| | | if(!supportedFileTypes.contains(fileExtName)){ |
| | | return BaseResponseUtils.buildError("请上传Word,Excel,PDF类型文档"); |
| | | } |
| | | FileRestVo frVo = fileOp.saveFile(file, |
| | | fmUrl, |
| | | FileConstant.fileRequestMapping, |
| | | FileConstant.filePostMapping_document, |
| | | FileConstant.NotRegionNum, |
| | | fileNameGrp[1], |
| | | null); |
| | | String fileMainName = fileOp.getFileMainName(frVo.fileName) ; |
| | | Long id = this.saveFileInfo(fileNameGrp[0], fileNameGrp[1], fileMainName, frVo.fileNameHash, frVo.fileWebPath); |
| | | FileVo fvo = new FileVo(id, |
| | | frVo.fileNameHash, |
| | | fileNameGrp[0], |
| | | fileNameGrp[1], |
| | | frVo.getFileWebPath(), |
| | | frVo.getFileWebUrl() + frVo.getFileWebPath(), |
| | | null, |
| | | frVo.fileWebDownloadPath + id) ; |
| | | return BaseResponseUtils.buildSuccess(fvo) ; |
| | | }else { |
| | | return BaseResponseUtils.buildError("未得到上传文件的扩展名"); |
| | | } |
| | | }else { |
| | | return BaseResponseUtils.buildError("未能拆分上传文件名称"); |
| | | } |
| | | } else { |
| | | return BaseResponseUtils.buildError("未上传文件"); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("上传照片文件异常", e); |
| | | return BaseResponseUtils.buildException(e.getMessage()); |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 数据库存储 |
| | | * @param orgName 文件原名称 |
| | | * @param extName 文件扩展名 |
| | | * @param newName 文件新名称 |
| | | * @param hash 文件新名称的哈希值 |
| | | * @param filePath 文件服务端存储相对路径 |
| | | * @return 数据记录主键 |
| | | */ |
| | | private Long saveFileInfo(String orgName, String extName, String newName, Integer hash, String filePath){ |
| | | WebFile po = new WebFile() ; |
| | | po.orgName = orgName ; |
| | | po.extName = extName ; |
| | | po.newName = newName ; |
| | | po.hash = hash ; |
| | | po.filePath = filePath ; |
| | | po.dt = new Date() ; |
| | | return this.sv.save(po) ; |
| | | } |
| | | |
| | | } |