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; 
 | 
    } 
 | 
} 
 |