From 3dcb4e0ebfd43190957f556d886917b2a2ffa064 Mon Sep 17 00:00:00 2001 From: zhaoxiaohao <913652501@qq.com> Date: Wed, 12 Aug 2020 18:45:30 +0800 Subject: [PATCH] 修改上传图片的接口 --- kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java | 81 ++++++++++++++++++++++++++++++++++++---- 1 files changed, 73 insertions(+), 8 deletions(-) diff --git a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java index 1dea60b..ba31137 100644 --- a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java +++ b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java @@ -2,8 +2,11 @@ import com.aliyun.oss.OSSClient; import com.aliyun.oss.common.auth.DefaultCredentialProvider; +import com.aliyun.oss.model.GetObjectRequest; +import com.aliyun.oss.model.OSSObject; import com.kidgrow.common.constant.SecurityConstants; import com.kidgrow.common.utils.DateUtil; +import com.kidgrow.common.utils.StringUtils; import com.kidgrow.filecenter.model.FileInfo; import com.kidgrow.filecenter.properties.FileServerProperties; import com.kidgrow.filecenter.service.impl.AbstractIFileService; @@ -15,7 +18,11 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; +import java.io.InputStream; import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> @@ -62,16 +69,17 @@ protected void uploadFile(MultipartFile file, FileInfo fileInfo) throws Exception { String clientID= httpServletRequest.getHeader(SecurityConstants.CLIENT_HEADER); String folderByDate =DateUtil.formatDate(new Date()); - if(clientID=="hospital"){//医院端平台,根据医院ID,科室ID进行OSS存储 - String orgID=httpServletRequest.getHeader(SecurityConstants.USER_ORG_ID_HEADER); - String depID=httpServletRequest.getHeader(SecurityConstants.USER_DEP_ID_HEADER); - String fileFolder="KidgrowAI/"+orgID+"/"+depID+"/"; - ossClient.putObject(fileProperties.getOss().getBucketName(), fileFolder + folderByDate + "/" + fileInfo.getName(), file.getInputStream()); - fileInfo.setUrl(fileProperties.getOss().getDomain() + fileFolder + folderByDate + "/" + fileInfo.getName()); + 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 fileFolder = ""; + if(clientID.equals("hospital")){//医院端平台, + fileFolder=FilePath(fileInfo.getImgType(),folderByDate,null,null); + fileUpLoadOss(fileInfo,fileFolder + fileName,file.getInputStream()); } else { - ossClient.putObject(fileProperties.getOss().getBucketName(), fileProperties.getOss().getFolder() + folderByDate + "/" + fileInfo.getName(), file.getInputStream()); - fileInfo.setUrl(fileProperties.getOss().getDomain() + fileProperties.getOss().getFolder() + folderByDate + "/" + fileInfo.getName()); + fileUpLoadOss(fileInfo,fileProperties.getOss().getFolder() + folderByDate + "/" + fileName,file.getInputStream()); } } @@ -81,5 +89,62 @@ ossClient.deleteObject(fileProperties.getOss().getBucketName(), fileInfo.getName()); return true; } + + /** + * 给OSS上上传文件 + * @param fileInfo 返回对象 + * @param newFilePath 上传到的文件路径 + * @param 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); + return ossClient.getObject(request); + } + /** + * 组合sso上的文件路径 + * @param imgType + * @return + */ + public String FilePath(String imgType,String folderByDate,String hospitalId,String departmentId) + { + //返回的文件路径 + 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)&& + org.apache.commons.lang3.StringUtils.isBlank(depID)) { + 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/" + folderByDate + "/"; + } + } + } + // 医院Logo只保存在一个目录中 + else if (imgType.toLowerCase().equals("logo")) { + fileFolder = "HospitalLogo/"; + }else if (imgType.toLowerCase().equals("doctor")) { + fileFolder = "DoctorImage/"; + } + else { + fileFolder = "OtherImage/"+ folderByDate + "/"; + } + } else { + fileFolder = "OtherImage/"+ folderByDate + "/"; + } + return fileFolder; + } } } -- Gitblit v1.8.0