package com.caimei.controller.admin.auth; import com.caimei.service.auth.UploadService; import com.caimei.service.data.DatabaseService; import com.caimei.utils.OSSUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.UUID; /** * @author Aslee * @date 2021/5/14 */ @Api(tags = "上传API") @Slf4j @RestController @RequiredArgsConstructor @RequestMapping("/upload") public class UploadApi { private static final Logger logger = LoggerFactory.getLogger(UploadApi.class); @Value("${caimei.imageDomain}") private String imageDomain; private final UploadService uploadService; /** * 上传图片 */ @ApiOperation("上传图片") @ApiImplicitParam(name = "file", value = "图片", required = true) @PostMapping("/image") public Map uploadImage(MultipartFile file) throws IOException { Map map = new HashMap<>(2); String saveFile; if (file != null) { // 保存文件 saveFile = uploadService.saveFile(file); map.put("data", saveFile); map.put("msg", "上传成功"); logger.info("【图片上传】>>>>>>>>>>>>>>>>图片上传成功:" + saveFile); } else { map.put("msg", "上传失败"); logger.info("【图片上传】>>>>>>>>>>>>>>>>图片上传失败:"); } return map; } @ApiOperation("上传文件") @ApiImplicitParam(name = "file", value = "文件", required = true) @PostMapping("/file") public Map uploadFile(MultipartFile file) throws IOException { Map map = new HashMap<>(2); String fileAllName = file.getOriginalFilename(); String realName = fileAllName.substring(0, fileAllName.lastIndexOf(".")); String fileType = fileAllName.substring(fileAllName.lastIndexOf(".") + 1); String fileName = file.getResource().getFilename(); String uuid = UUID.randomUUID().toString().replaceAll("-", ""); String filePath = uuid + "." + fileType; String contentType = OSSUtils.getContentType(fileAllName); log.info(">>>>>>>>>>>>>上传文件"); //保存本地 File uploadFile = OSSUtils.ossUpload(file); //将文件上传oss log.info("开始上传>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); log.info("开始时间" + format.format(new Date())); String previewUrl = OSSUtils.ossUpload(filePath, uploadFile, contentType, null); log.info("结束时间" + format.format(new Date())); if (StringUtils.isNotEmpty(previewUrl)) { map.put("previewUrl", previewUrl); map.put("downloadUrl", filePath); map.put("fileName", fileName); map.put("msg", "上传成功"); logger.info(">>>>>>>>>>>>>>>>文件上传成功:" + previewUrl); } else { map.put("msg", "上传失败"); logger.info(">>>>>>>>>>>>>>>>文件上传失败:"); } return map; } }