You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.7 KiB
Java
50 lines
1.7 KiB
Java
package com.ruoyi.web.controller;
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import com.ruoyi.common.annotation.Log;
|
|
import com.ruoyi.common.core.domain.R;
|
|
import com.ruoyi.common.enums.BusinessType;
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
import com.ruoyi.common.utils.file.FileUtils;
|
|
import com.ruoyi.file.FileService;
|
|
import lombok.RequiredArgsConstructor;
|
|
import org.springframework.http.MediaType;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
@RequiredArgsConstructor
|
|
@RestController
|
|
@RequestMapping("/")
|
|
public class UploadController {
|
|
private final FileService fileService;
|
|
|
|
|
|
@GetMapping("/uploadKey")
|
|
public R uploadKey() {
|
|
return R.ok().setData(FileUtils.getUploadKey());
|
|
}
|
|
|
|
|
|
@Log(title = "OSS对象存储", businessType = BusinessType.INSERT)
|
|
@PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
|
public R upload(@RequestPart("file") MultipartFile file, String pre) {
|
|
if (ObjectUtil.isNull(file)) {
|
|
throw new ServiceException("文件为空");
|
|
}
|
|
return R.map().put("ossId", 0).put("url", fileService.setPrefix(pre).setKeepFilename().save(file));
|
|
}
|
|
|
|
@Log(title = "OSS对象存储", businessType = BusinessType.INSERT)
|
|
@PostMapping(value = "/uploadImg", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
|
public R uploadImg(@RequestPart("file") MultipartFile file, String pre) {
|
|
if (ObjectUtil.isNull(file)) {
|
|
throw new ServiceException("文件为空");
|
|
}
|
|
if (!file.getContentType().startsWith("image/")) {
|
|
throw new ServiceException("不是图片");
|
|
}
|
|
return R.map().put("ossId", 0).put("url", fileService.setPrefix(pre).setSize().setWatermark().setThumbnail().saveImage(file));
|
|
}
|
|
|
|
}
|