| package com.doumee.core.oss; | 
|   | 
| import com.doumee.core.utils.ID; | 
| import lombok.Cleanup; | 
| import org.apache.commons.lang3.StringUtils; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.mock.web.MockMultipartFile; | 
| import org.springframework.stereotype.Service; | 
| import org.springframework.web.multipart.MultipartFile; | 
|   | 
| import java.io.BufferedOutputStream; | 
| import java.io.File; | 
| import java.io.FileOutputStream; | 
| import java.io.InputStream; | 
| import java.time.LocalDate; | 
| import java.time.format.DateTimeFormatter; | 
| import java.util.Map; | 
|   | 
| /** | 
|  * 附件上传 | 
|  */ | 
| @Service | 
| public class UploadFileService { | 
|   | 
|   | 
|     @Autowired | 
|     private AliOssService aliOssService; | 
|   | 
|     public FileModel uploadWxCode(InputStream inputStream,String id) throws Exception{ | 
|         MultipartFile multipartFile = new MockMultipartFile(id+".png",id+".png","", inputStream); | 
|         return this.uploadAliOssFile(multipartFile,"wxCode",true); | 
|     } | 
|   | 
|     /** | 
|      * 2、上传阿里云OSS | 
|      * | 
|      * @param file:                    表单文件 | 
|      * @param model:是否存在目录 | 
|      * @param ifCreateFileName:是否创建新名字 true/false | 
|      */ | 
|     public FileModel uploadAliOssFile(MultipartFile file, String model, Boolean ifCreateFileName) { | 
|         FileModel res = new FileModel(); | 
|         //OSS | 
|         String origin=FileContent.fileOrigin.get(1); | 
|         //原文件名(如:xxxx.doc) | 
|         String originalFilename = file.getOriginalFilename(); | 
|         //文件后缀(如:doc) | 
|         String suffix = originalFilename.substring(file.getOriginalFilename().lastIndexOf(".") + 1); | 
|         //文件名 | 
|         String fileName = ifCreateFileName ? ID.nextGUID() + originalFilename.substring(file.getOriginalFilename().lastIndexOf(".")) : originalFilename; | 
|         //--------OOS文件存放根路径--------- | 
|         String fullFileName = this.getRootPath(model,fileName); | 
|         res.setOrigin(origin); | 
|         res.setSuffix(suffix); | 
|         //新文件名 | 
|         res.setNewFilename(fileName); | 
|         //原文件名 | 
|         res.setFileName(originalFilename); | 
|         res.setFilePath(fullFileName); | 
|         try { | 
|             Map map = aliOssService.uploadFile(fullFileName, file.getInputStream()); | 
|             String code = map.get("code").toString(); | 
|             String url = map.get("url").toString(); | 
|             String msg = map.get("msg").toString(); | 
|             if (code.equals("200")) { | 
|                 res.setCode(0); | 
|                 res.setFileUrl(url); | 
|                 res.setMsg(msg); | 
|             } else { | 
|                 res.setCode(-1); | 
|                 res.setMsg(msg); | 
|             } | 
|         } catch (Exception e) { | 
|             e.printStackTrace(); | 
|             res.setMsg(e.getMessage()); | 
|             res.setCode(-1); | 
|         } | 
|         return res; | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 获取根目录及下载URL | 
|      * | 
|      * @param model | 
|      * @param fileName | 
|      * @return | 
|      */ | 
|     public String getRootPath(String model, String fileName) { | 
|         String time = LocalDate.now().format(DateTimeFormatter.BASIC_ISO_DATE); | 
|         //根目录 | 
|         String catalog = "file"; | 
|         String oss_doc= time+ "/" + model + "/" + fileName; | 
|         if(StringUtils.isNotBlank(catalog)){ | 
|             oss_doc=catalog.trim()+"/"+oss_doc; | 
|         } | 
|         return oss_doc; | 
|     } | 
| } |