| package com.dy.pmsGlobal.global; | 
|   | 
|   | 
| import com.dy.common.aop.SsoPowerAop; | 
| import com.dy.common.webUtil.BaseResponse; | 
| import com.dy.common.webUtil.BaseResponseUtils; | 
| import com.dy.pmsGlobal.dyFile.FileConstant; | 
| import com.dy.pmsGlobal.dyFile.FileOperate; | 
| import com.dy.pmsGlobal.dyFile.FileRestVo; | 
| import com.dy.pmsGlobal.dyFile.FileVo; | 
| import com.dy.pmsGlobal.pojoOth.OthFile; | 
| import jakarta.servlet.http.HttpServletRequest; | 
| 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; | 
|   | 
| /** | 
|  * web文件上传示例 | 
|  */ | 
| @Slf4j | 
| @RestController | 
| @RequestMapping(path="webFile") | 
| @SuppressWarnings("unchecked")//java版本越高,对泛型约束越严,所以配置SuppressWarnings("unchecked" | 
| public class WebFileCtrl { | 
|   | 
|     @Autowired | 
|     private FileOperate fileOp ; | 
|   | 
|     @Autowired | 
|     private WebFileSv sv ; | 
|   | 
|     @Value("${dy.webFile.fmUrl}") | 
|     private String fmUrl ; | 
|   | 
|     @PostMapping("/upPhoto") | 
|     @SsoPowerAop(power = "-1") //登录与权限同时验证 | 
|     //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, HttpServletRequest req) { | 
|         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.getFileWebUrl() + frVo.getFileWebPath()), fileOp.getImgFileZipPath(frVo.getFileWebUrl() + frVo.getFileWebPath())) ; | 
|                         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()); | 
|         } | 
|     } | 
|   | 
|     @PostMapping("/upPhone") | 
|     @SsoPowerAop(power = "-1") | 
|     public BaseResponse<?> upPhone(MultipartFile file, HttpServletRequest req) { | 
|         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.getFileWebUrl() + frVo.getFileWebPath(), null) ; | 
|                         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()); | 
|         } | 
|     } | 
|   | 
|   | 
|   | 
|     @PostMapping("/upVideo") | 
|     @SsoPowerAop(power = "-1") | 
|     public BaseResponse<?> upVideo(MultipartFile file, HttpServletRequest req) { | 
|         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.getFileWebUrl() + frVo.getFileWebPath(), null) ; | 
|                         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()); | 
|         } | 
|     } | 
|   | 
|   | 
|   | 
|     @PostMapping("/upDocument") | 
|     @SsoPowerAop(power = "-1") | 
|     public BaseResponse<?> upDocument(MultipartFile file, HttpServletRequest req) { | 
|         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_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.getFileWebUrl() + frVo.getFileWebPath(), null) ; | 
|                         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){ | 
|         OthFile po = new OthFile() ; | 
|         po.orgName = orgName ; | 
|         po.extName = extName ; | 
|         po.newName = newName ; | 
|         po.hash = hash ; | 
|         po.filePath = filePath ; | 
|         return this.sv.save(po) ; | 
|     } | 
|   | 
| } |