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