package cn.cetc54.platform.base.controller.common;
|
|
import cn.cetc54.platform.base.entity.File;
|
import cn.cetc54.platform.base.manager.FileManageFactory;
|
import cn.cetc54.platform.base.service.FileService;
|
import cn.cetc54.platform.core.common.utils.Base64DecodeMultipartFile;
|
import cn.cetc54.platform.core.common.utils.CommonUtil;
|
import cn.cetc54.platform.core.common.utils.ResultUtil;
|
import cn.cetc54.platform.core.common.vo.Result;
|
import cn.cetc54.platform.core.config.properties.OSSProperties;
|
import cn.hutool.core.util.StrUtil;
|
import com.google.gson.Gson;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import javax.servlet.http.HttpServletRequest;
|
import java.io.InputStream;
|
|
/**
|
* @author
|
*/
|
@Slf4j
|
@RestController
|
@Api(description = "文件上传接口")
|
@RequestMapping("/platform/upload")
|
@Transactional
|
public class UploadController {
|
|
@Autowired
|
private FileManageFactory fileManageFactory;
|
|
@Autowired
|
private FileService fileService;
|
|
@Autowired
|
private OSSProperties ossProperties;
|
|
|
|
|
@RequestMapping(value = "/file",method = RequestMethod.POST)
|
@ApiOperation(value = "文件上传")
|
public Result<Object> upload(@RequestParam(required = false) MultipartFile file,
|
@RequestParam(required = false) String base64,
|
HttpServletRequest request) {
|
|
if(StrUtil.isNotBlank(base64)){
|
// base64上传
|
file = Base64DecodeMultipartFile.base64Convert(base64);
|
}
|
String result = "";
|
String fKey = CommonUtil.renamePic(file.getOriginalFilename());
|
File f = new File();
|
try {
|
InputStream inputStream = file.getInputStream();
|
// 上传至第三方云服务或服务器
|
result = fileManageFactory.getFileManage().inputStreamUpload(inputStream, fKey, file);
|
// 保存数据信息至数据库
|
f.setName(file.getOriginalFilename());
|
f.setSize(file.getSize());
|
f.setType(file.getContentType());
|
f.setFKey(fKey);
|
f.setUrl(result);
|
fileService.save(f);
|
} catch (Exception e) {
|
log.error(e.toString());
|
return ResultUtil.error(e.toString());
|
}
|
result = ossProperties.getEndpoint() + "/" + f.getId();
|
return ResultUtil.data(result);
|
}
|
}
|