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 +++++++++-----
 kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/controller/FileController.java      |   12 ++
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserMapper.xml                                 |    2 
 kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/impl/AbstractIFileService.java |   67 ++++++++++++
 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java   |    7 
 kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/CommonConstant.java                       |   12 ++
 kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/FastdfsAutoConfigure.java    |   12 ++
 kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/IFileService.java              |    9 +
 kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/QiniuOSSAutoConfigure.java   |   12 ++
 kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/DoctorUserAll.java                           |    9 +
 kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/utils/MultipartFileUtils.java                      |   61 ++++++++++++
 11 files changed, 244 insertions(+), 34 deletions(-)

diff --git a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/IFileService.java b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/IFileService.java
index b3311a4..2f72f50 100644
--- a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/IFileService.java
+++ b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/IFileService.java
@@ -23,4 +23,13 @@
     PageResult<FileInfo> findList(Map<String, Object> params);
 
     void delete(String id);
+
+    /**
+     * 上传图片-并缩略,其实是给文件服务器存储了两个文件 一个原文件  一个缩略图文件
+     * @param file form内的文件数据
+     * @param imgType 业务类型 例如logo
+     * @return 返回的实体中  path字段保存的是缩略图地址
+     * @throws Exception
+     */
+    FileInfo uploadForThumbnails(MultipartFile file ,String imgType) throws Exception;
 }
diff --git a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/impl/AbstractIFileService.java b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/impl/AbstractIFileService.java
index 527487e..0fbab5b 100644
--- a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/impl/AbstractIFileService.java
+++ b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/impl/AbstractIFileService.java
@@ -1,19 +1,27 @@
 package com.kidgrow.filecenter.service.impl;
 
+import cn.hutool.core.util.IdUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-
+import com.kidgrow.common.constant.CommonConstant;
 import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.utils.DateUtil;
+import com.kidgrow.common.utils.MultipartFileUtils;
+import com.kidgrow.common.utils.RandomValueUtils;
+import com.kidgrow.common.utils.StringUtils;
 import com.kidgrow.filecenter.mapper.FileMapper;
 import com.kidgrow.filecenter.model.FileInfo;
 import com.kidgrow.filecenter.service.IFileService;
 import com.kidgrow.filecenter.util.FileUtil;
-
 import lombok.extern.slf4j.Slf4j;
-
+import net.coobird.thumbnailator.Thumbnails;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -82,6 +90,8 @@
      * @param fileInfo
      */
     protected abstract void uploadFile(MultipartFile file, FileInfo fileInfo) throws Exception;
+    protected abstract void fileUpLoadOss(FileInfo fileInfo,String newFilePath, InputStream fileStream);
+    protected abstract String FilePath(String imgType,String folderByDate);
 
     /**
      * 删除文件
@@ -110,5 +120,56 @@
         List<FileInfo> list = baseMapper.findList(page, params);
         return PageResult.<FileInfo>builder().data(list).code(0).count(page.getTotal()).build();
     }
+    /**
+     * 上传图片-并缩略,其实是给文件服务器存储了两个文件 一个原文件  一个缩略图文件
+     * @param file form内的文件数据
+     * @param imgType 业务类型 例如logo
+     * @return 返回的实体中  path字段保存的是缩略图地址
+     * @throws Exception
+     */
+    @Override
+    public FileInfo uploadForThumbnails(MultipartFile file, String imgType) throws Exception {
+        FileInfo fileInfo=this.upload(file,imgType);
+        if (StringUtils.isNotBlank(fileInfo.getUrl())) {
+            //生成缩略图上传
+            File nowFile= MultipartFileUtils.multipartFileToFile(file);
+            //暂存目录  发布后真实存在的磁盘目录
+            String result = CommonConstant.TEMP_IMAGE_PATH;
+            //文件扩展名
+            String suffix=file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
+            String newFileName= RandomValueUtils.uuid()+suffix;
+            //生成缩略图
+            Thumbnails.of(nowFile).size(CommonConstant.TH_IMG_WIDTH, CommonConstant.TH_IMG_HEIGHT).toFile(result+newFileName);
+            File thuFile= new File(result+newFileName);
+            if (thuFile.exists()) {
+                //将生成的文件转换为流
+                InputStream inputStream=new FileInputStream(new File(result+newFileName));
+                String folderByDate = DateUtil.formatDate(new Date());
+                String filefloder=this.FilePath(imgType,folderByDate);
+                FileInfo newfileInfo=new FileInfo();
+                newfileInfo.setName(newFileName);
+                newfileInfo.setId(IdUtil.fastSimpleUUID());
+                newfileInfo.setSize(thuFile.length());
+                newfileInfo.setIsImg(true);
+                newfileInfo.setContentType(file.getContentType());
+                newfileInfo.setSource(fileInfo.getSource());
+                newfileInfo.setImgType(imgType);
+                newfileInfo.setCreateTime(new Date());
+                //文件上传到oss
+                this.fileUpLoadOss(newfileInfo,filefloder+newFileName,inputStream);
+                // 将文件信息保存到数据库
+                baseMapper.insert(newfileInfo);
+                fileInfo.setPath(newfileInfo.getUrl());
+                //删除暂存文件
+                MultipartFileUtils.delteTempFile(thuFile);
+                inputStream.close();
+            }
+            return fileInfo;
+        }
+        else
+        {
+            return fileInfo;
+        }
+    }
 }
 
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;
+        }
     }
 }
diff --git a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/FastdfsAutoConfigure.java b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/FastdfsAutoConfigure.java
index 2150754..9e5ed3c 100644
--- a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/FastdfsAutoConfigure.java
+++ b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/FastdfsAutoConfigure.java
@@ -13,6 +13,8 @@
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.io.InputStream;
+
 /**
  * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
  *
@@ -45,6 +47,16 @@
         }
 
         @Override
+        protected void fileUpLoadOss(FileInfo fileInfo, String newFilePath, InputStream fileStream) {
+
+        }
+
+        @Override
+        protected String FilePath(String imgType, String folderByDate) {
+            return null;
+        }
+
+        @Override
         protected boolean deleteFile(FileInfo fileInfo) {
             if (fileInfo != null && StrUtil.isNotEmpty(fileInfo.getPath())) {
                 StorePath storePath = StorePath.parseFromUrl(fileInfo.getPath());
diff --git a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/QiniuOSSAutoConfigure.java b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/QiniuOSSAutoConfigure.java
index e82a167..ceea920 100644
--- a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/QiniuOSSAutoConfigure.java
+++ b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/QiniuOSSAutoConfigure.java
@@ -17,6 +17,8 @@
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.io.InputStream;
+
 /**
  * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
  *
@@ -88,6 +90,16 @@
         }
 
         @Override
+        protected void fileUpLoadOss(FileInfo fileInfo, String newFilePath, InputStream fileStream) {
+
+        }
+
+        @Override
+        protected String FilePath(String imgType, String folderByDate) {
+            return null;
+        }
+
+        @Override
         protected boolean deleteFile(FileInfo fileInfo) {
             try {
                 Response response = bucketManager.delete(fileProperties.getOss().getBucketName(), fileInfo.getPath());
diff --git a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/controller/FileController.java b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/controller/FileController.java
index a599efa..0fdd274 100644
--- a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/controller/FileController.java
+++ b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/controller/FileController.java
@@ -50,7 +50,17 @@
     public FileInfo feignUpload(@RequestPart("file") MultipartFile file,@RequestParam String imgType) throws Exception {
         return fileService.upload(file,imgType);
     }
-
+    /**
+     * 文件上传 返回带缩略图地址的对象,缩略图在path字段
+     *
+     * @param file
+     * @return
+     * @throws Exception
+     */
+    @PostMapping(value="/files-thupload",produces = {MediaType.APPLICATION_JSON_UTF8_VALUE},consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
+    public FileInfo thUpload(@RequestPart("file") MultipartFile file,@RequestParam String imgType) throws Exception {
+        return fileService.uploadForThumbnails(file,imgType);
+    }
 
     /**
      * 文件删除
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
index ff57dbc..4b67902 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
@@ -139,11 +139,12 @@
             //是否医院管理员
             com.kidgrow.usercenter.model.SysDoctor sysDoctor = findDoctorByUserId(sysUser.getId());
             if (sysDoctor.getIsAdminUser() != null) {
-                sysUser.setHAdminUser(sysDoctor.getIsAdminUser());
+                loginAppUser.setHAdminUser(sysDoctor.getIsAdminUser());
             }
             //医院信息 只有H端要返回的信息
-            if (sysUser.getTenantId() == CommonConstant.H_TENANT) {
-                sysUser.setDoctorUserAllVO(baseMapper.findDoctorUserAllData(sysUser.getId()));
+            if (sysUser.getTenantId().toLowerCase().equals(CommonConstant.H_TENANT.toLowerCase())) {
+                DoctorUserAll doctorUserAllVo=baseMapper.findDoctorUserAllData(sysUser.getId());
+                loginAppUser.setDoctorUserAllVO(doctorUserAllVo);
             }
         }
         return loginAppUser;
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserMapper.xml b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserMapper.xml
index 7d9be46..a6664dd 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserMapper.xml
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserMapper.xml
@@ -114,6 +114,7 @@
 		sysdoctor.enabled docenabled,
 		sysdoctor.is_del docdel,
 
+		syshos.id hospital_id,
 		syshos.hospital_name,
 		syshos.hospital_short_name,
 		syshos.hospital_type_name,
@@ -133,6 +134,7 @@
 		syshos.is_del hosdel,
 		syshos.accounts_count,
 
+		sysdep.id department_id,
 		sysdep.department_name,
 		sysdep.server_user_name,
 		sysdep.server_user_tel,
diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/CommonConstant.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/CommonConstant.java
index d6561b8..ad692d6 100644
--- a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/CommonConstant.java
+++ b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/CommonConstant.java
@@ -235,4 +235,16 @@
      * 签名结果 KEY
      */
     public static final String SIGN_SIGN_KEY = "sign";
+    /**
+     * logo缩略图默认宽
+     */
+    public static final Integer TH_IMG_WIDTH = 300;
+    /**
+     * logo缩略图默认高
+     */
+    public static final Integer TH_IMG_HEIGHT = 150;
+    /**
+     * 生成缩略图需要的图片暂存目录
+     */
+    public static final String TEMP_IMAGE_PATH="D:/resources/images/";
 }
diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/DoctorUserAll.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/DoctorUserAll.java
index e5fc6f0..d4a106c 100644
--- a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/DoctorUserAll.java
+++ b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/DoctorUserAll.java
@@ -71,6 +71,10 @@
 
 
     /**
+     * 医院id
+     */
+    private String hospitalId;
+    /**
      * 医院名称 同组织名字
      */
     private String hospitalName;
@@ -146,6 +150,11 @@
     /**
      * 科室/部门名称 同组织名称
      */
+    private String departmentId;
+
+    /**
+     * 科室/部门名称 同组织名称
+     */
     private String departmentName;
     /**
      * 销售代表的名字
diff --git a/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/utils/MultipartFileUtils.java b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/utils/MultipartFileUtils.java
new file mode 100644
index 0000000..e2b6702
--- /dev/null
+++ b/kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/utils/MultipartFileUtils.java
@@ -0,0 +1,61 @@
+package com.kidgrow.common.utils;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+/**
+ * MultipartFile转换帮助类
+ */
+public class MultipartFileUtils {
+    /**
+     * MultipartFile 转 File
+     *
+     * @param file
+     * @throws Exception
+     */
+    public static File multipartFileToFile(MultipartFile file) throws Exception {
+
+        File toFile = null;
+        if (file.equals("") || file.getSize() <= 0) {
+            file = null;
+        } else {
+            InputStream ins = null;
+            ins = file.getInputStream();
+            toFile = new File(file.getOriginalFilename());
+            inputStreamToFile(ins, toFile);
+            ins.close();
+        }
+        return toFile;
+    }
+
+    //获取流文件
+    private static void inputStreamToFile(InputStream ins, File file) {
+        try {
+            OutputStream os = new FileOutputStream(file);
+            int bytesRead = 0;
+            byte[] buffer = new byte[8192];
+            while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
+                os.write(buffer, 0, bytesRead);
+            }
+            os.close();
+            ins.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 删除本地临时文件
+     *
+     * @param file
+     */
+    public static void delteTempFile(File file) {
+        if (file != null) {
+            File del = new File(file.toURI());
+            del.delete();
+        }
+    }
+}

--
Gitblit v1.8.0