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