From 6557baac627dce769c2b05ab482e4daf262a88ac Mon Sep 17 00:00:00 2001 From: houruijun <411269194@kidgrow.com> Date: Wed, 17 Jun 2020 17:34:01 +0800 Subject: [PATCH] 1.增加工具类 MultipartFileUtils ,支持将MultipartFile类型转换为file类型 2.增加缩略图相关全局配置变量:宽高和生成缩略图的暂存目录(缩略图上传成功后会删除) 3.修改文件上传中心的上传代码,将生成目录和aliyun上传方法抽离独立 4.增加医院logo上传支持接口(可返回缩略图地址) 5.修改登录后回去用户信息不完整bug --- kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java | 75 ++++++++++++++++++++++++------------- 1 files changed, 48 insertions(+), 27 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 ec404eb..029a41b 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 @@ -4,6 +4,7 @@ import com.aliyun.oss.common.auth.DefaultCredentialProvider; 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,6 +16,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; +import java.io.InputStream; import java.util.Date; import java.util.UUID; @@ -69,35 +71,11 @@ String fileName= UUID.randomUUID().toString().replaceAll("-","")+fileType; String fileFolder = ""; if(clientID.equals("hospital")){//医院端平台, - - if ((fileInfo.getImgType() != null)) { - // 光片需要按照根据医院ID,科室ID,日期进行OSS存储 - if (fileInfo.getImgType().toLowerCase().equals("xray")) { - String hospitalID = httpServletRequest.getHeader(SecurityConstants.USER_HOSPITAL_ID_HEADER); - String depID = httpServletRequest.getHeader(SecurityConstants.USER_DEP_ID_HEADER); - fileFolder = "Xray/" + hospitalID + "/" + depID + "/"+ folderByDate + "/"; - } - // 医院Logo只保存在一个目录中 - else if (fileInfo.getImgType().toLowerCase().equals("logo")) { - fileFolder = "HospitalLogo/"; - }else if (fileInfo.getImgType().toLowerCase().equals("doctor")) { - fileFolder = "DoctorImage/"; - } - else { - fileFolder = "OtherImage/"+ folderByDate + "/"; - } - - } else { - fileFolder = "OtherImage/"+ folderByDate + "/"; - } - - ossClient.putObject(fileProperties.getOss().getBucketName(), fileFolder + fileName, file.getInputStream()); - fileInfo.setUrl(fileProperties.getOss().getDomain() + fileFolder + fileName); - + fileFolder=FilePath(fileInfo.getImgType(),folderByDate); + fileUpLoadOss(fileInfo,fileFolder + fileName,file.getInputStream()); } else { - ossClient.putObject(fileProperties.getOss().getBucketName(), fileProperties.getOss().getFolder() + folderByDate + "/" + fileName, file.getInputStream()); - fileInfo.setUrl(fileProperties.getOss().getDomain() + fileProperties.getOss().getFolder() + folderByDate + "/" + fileName); + fileUpLoadOss(fileInfo,fileProperties.getOss().getFolder() + folderByDate + "/" + fileName,file.getInputStream()); } } @@ -107,5 +85,48 @@ 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); + } + /** + * 组合sso上的文件路径 + * @param imgType + * @return + */ + public String FilePath(String imgType,String folderByDate) + { + //返回的文件路径 + 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); + fileFolder = "Xray/" + hospitalID + "/" + depID + "/"+ 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