新增文件上传功能
This commit is contained in:
parent
f54b582ce8
commit
8fe006ef63
|
@ -0,0 +1,47 @@
|
||||||
|
package net.maku.system.controller;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import net.maku.framework.common.utils.Result;
|
||||||
|
import net.maku.storage.service.StorageService;
|
||||||
|
import net.maku.system.vo.SysFileUploadVO;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件上传
|
||||||
|
*
|
||||||
|
* @author 阿沐 babamu@126.com
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("sys/file")
|
||||||
|
@Tag(name = "文件上传")
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SysFileUploadController {
|
||||||
|
private final StorageService storageService;
|
||||||
|
|
||||||
|
@PostMapping("upload")
|
||||||
|
@Operation(summary = "上传")
|
||||||
|
public Result<SysFileUploadVO> upload(@RequestParam("file") MultipartFile file) throws Exception {
|
||||||
|
if (file.isEmpty()) {
|
||||||
|
return Result.error("请选择需要上传的文件");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 上传路径
|
||||||
|
String path = storageService.getPath(file.getOriginalFilename());
|
||||||
|
// 上传文件
|
||||||
|
String url = storageService.upload(file.getBytes(), path);
|
||||||
|
|
||||||
|
SysFileUploadVO vo = new SysFileUploadVO();
|
||||||
|
vo.setUrl(url);
|
||||||
|
vo.setSize(file.getSize());
|
||||||
|
vo.setName(file.getOriginalFilename());
|
||||||
|
vo.setPlatform(storageService.properties.getConfig().getType().name());
|
||||||
|
|
||||||
|
return Result.ok(vo);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,29 @@
|
||||||
|
package net.maku.system.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件上传
|
||||||
|
*
|
||||||
|
* @author 阿沐 babamu@126.com
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Schema(description = "文件上传")
|
||||||
|
public class SysFileUploadVO implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Schema(description = "文件名称")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@Schema(description = "文件地址")
|
||||||
|
private String url;
|
||||||
|
|
||||||
|
@Schema(description = "文件大小")
|
||||||
|
private Long size;
|
||||||
|
|
||||||
|
@Schema(description = "存储平台")
|
||||||
|
private String platform;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user