| | |
| | | private FileServerProperties fileProperties; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 阿里云文件存储client |
| | | * 只有配置了aliyun.oss.access-key才可以使用 |
| | |
| | | |
| | | @Override |
| | | protected void uploadFile(MultipartFile file, FileInfo fileInfo) throws Exception { |
| | | String clientID= httpServletRequest.getHeader(SecurityConstants.CLIENT_HEADER); |
| | | String folderByDate =DateUtil.formatDate(new Date()); |
| | | String clientID = httpServletRequest.getHeader(SecurityConstants.CLIENT_HEADER); |
| | | String folderByDate = DateUtil.formatDate(new Date()); |
| | | int begin = file.getOriginalFilename().indexOf("."); |
| | | int last = file.getOriginalFilename().length(); |
| | | String fileType = file.getOriginalFilename().substring(begin, last); |
| | | String fileName= UUID.randomUUID().toString().replaceAll("-","")+fileType; |
| | | String fileName = UUID.randomUUID().toString().replaceAll("-", "") + fileType; |
| | | String fileFolder = ""; |
| | | if(clientID.equals("hospital")){//医院端平台, |
| | | fileFolder=FilePath(fileInfo.getImgType(),folderByDate,null,null); |
| | | fileUpLoadOss(fileInfo,fileFolder + fileName,file.getInputStream()); |
| | | } |
| | | else { |
| | | fileUpLoadOss(fileInfo,fileProperties.getOss().getFolder() + folderByDate + "/" + fileName,file.getInputStream()); |
| | | if (clientID.equals("hospital")) {//医院端平台, |
| | | fileFolder = FilePath(fileInfo.getImgType(), folderByDate, null, null); |
| | | fileUpLoadOss(fileInfo, fileFolder + fileName, file.getInputStream()); |
| | | } else { |
| | | fileUpLoadOss(fileInfo, fileProperties.getOss().getFolder() + folderByDate + "/" + fileName, file.getInputStream()); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | /** |
| | | * 给OSS上上传文件 |
| | | * @param fileInfo 返回对象 |
| | | * |
| | | * @param fileInfo 返回对象 |
| | | * @param newFilePath 上传到的文件路径 |
| | | * @param fileStream 要上传的文件流 |
| | | */ |
| | | public void fileUpLoadOss(FileInfo fileInfo,String newFilePath, InputStream fileStream) |
| | | { |
| | | public void fileUpLoadOss(FileInfo fileInfo, String newFilePath, InputStream fileStream) { |
| | | ossClient.putObject(fileProperties.getOss().getBucketName(), newFilePath, fileStream); |
| | | fileInfo.setUrl(fileProperties.getOss().getDomain() + newFilePath); |
| | | |
| | | } |
| | | public OSSObject down(String url){ |
| | | GetObjectRequest request=new GetObjectRequest(fileProperties.getOss().getBucketName(),url); |
| | | |
| | | public OSSObject down(String url) { |
| | | GetObjectRequest request = new GetObjectRequest(fileProperties.getOss().getBucketName(), url); |
| | | return ossClient.getObject(request); |
| | | } |
| | | |
| | | /** |
| | | * 组合sso上的文件路径 |
| | | * |
| | | * @param imgType |
| | | * @return |
| | | */ |
| | | public String FilePath(String imgType,String folderByDate,String hospitalId,String departmentId) |
| | | { |
| | | public String FilePath(String imgType, String folderByDate, String hospitalId, String departmentId) { |
| | | //返回的文件路径 |
| | | String fileFolder=""; |
| | | String fileFolder = ""; |
| | | if (StringUtils.isNotBlank(imgType)) { |
| | | // 光片需要按照根据医院ID,科室ID,日期进行OSS存储 |
| | | if (imgType.toLowerCase().equals("xray")) { |
| | | String hospitalID = httpServletRequest.getHeader(SecurityConstants.USER_HOSPITAL_ID_HEADER); |
| | | String depID = httpServletRequest.getHeader(SecurityConstants.USER_DEP_ID_HEADER); |
| | | if (org.apache.commons.lang3.StringUtils.isBlank(hospitalID)&& |
| | | if (org.apache.commons.lang3.StringUtils.isBlank(hospitalID) && |
| | | org.apache.commons.lang3.StringUtils.isBlank(depID)) { |
| | | fileFolder = "Xray/" + hospitalID + "/" + depID + "/"+ folderByDate + "/"; |
| | | }else { |
| | | if (org.apache.commons.lang3.StringUtils.isBlank(hospitalId)&& |
| | | fileFolder = "Xray/" + hospitalID + "/" + depID + "/" + folderByDate + "/"; |
| | | } else { |
| | | if (org.apache.commons.lang3.StringUtils.isBlank(hospitalId) && |
| | | org.apache.commons.lang3.StringUtils.isBlank(departmentId)) { |
| | | fileFolder = "Xray/" + hospitalId + "/" + departmentId + "/"+ folderByDate + "/"; |
| | | }else { |
| | | fileFolder = "Xray/" + hospitalId + "/" + departmentId + "/" + folderByDate + "/"; |
| | | } else { |
| | | fileFolder = "Xray/" + folderByDate + "/"; |
| | | } |
| | | } |
| | | } else if (imgType.toLowerCase().equals("app")) { |
| | | //移动端APP上传 |
| | | if (org.apache.commons.lang3.StringUtils.isBlank(hospitalId) && |
| | | org.apache.commons.lang3.StringUtils.isBlank(departmentId)) { |
| | | fileFolder = "AppXray/" + hospitalId + "/" + departmentId + "/" + folderByDate + "/"; |
| | | } else { |
| | | fileFolder = "AppXray/" + folderByDate + "/"; |
| | | } |
| | | } |
| | | // 医院Logo只保存在一个目录中 |
| | | else if (imgType.toLowerCase().equals("logo")) { |
| | | fileFolder = "HospitalLogo/"; |
| | | }else if (imgType.toLowerCase().equals("doctor")) { |
| | | } else if (imgType.toLowerCase().equals("doctor")) { |
| | | fileFolder = "DoctorImage/"; |
| | | } |
| | | else { |
| | | fileFolder = "OtherImage/"+ folderByDate + "/"; |
| | | } else { |
| | | fileFolder = "OtherImage/" + folderByDate + "/"; |
| | | } |
| | | } else { |
| | | fileFolder = "OtherImage/"+ folderByDate + "/"; |
| | | fileFolder = "OtherImage/" + folderByDate + "/"; |
| | | } |
| | | return fileFolder; |
| | | } |