parent
8ff3b2c30a
commit
76d39774a2
@ -1,33 +1,60 @@
|
||||
package cc.yunxi.controller;
|
||||
|
||||
import cc.yunxi.common.domain.CommonResult;
|
||||
import cc.yunxi.domain.vo.common.FileUploadReqVO;
|
||||
import cc.yunxi.common.exception.BizIllegalException;
|
||||
import cc.yunxi.common.utils.FileUtils;
|
||||
import cc.yunxi.domain.vo.file.FileUploadReqVO;
|
||||
import cc.yunxi.domain.vo.file.FileUploadRespVO;
|
||||
import cc.yunxi.service.IFileService;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import java.io.IOException;
|
||||
|
||||
@Api(tags = "文件接口")
|
||||
@RestController
|
||||
@RequestMapping("/file")
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
@Validated
|
||||
public class FileController {
|
||||
|
||||
private final IFileService fileService;
|
||||
|
||||
@ApiOperation("文件上传")
|
||||
@PostMapping(value ="/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public CommonResult<String> upload(FileUploadReqVO uploadReqVO) {
|
||||
fileService.uploadFile(uploadReqVO);
|
||||
return CommonResult.success("ok");
|
||||
public CommonResult<FileUploadRespVO> upload(FileUploadReqVO uploadReqVO) {
|
||||
FileUploadRespVO uploadRespVO = fileService.uploadFile(uploadReqVO);
|
||||
return CommonResult.success(uploadRespVO);
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("图片上传")
|
||||
@PostMapping(value ="/uploadImg", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public CommonResult<FileUploadRespVO> uploadImg(FileUploadReqVO uploadReqVO) {
|
||||
FileUploadRespVO uploadRespVO = fileService.uploadImage(uploadReqVO);
|
||||
return CommonResult.success(uploadRespVO);
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("文件下载")
|
||||
@GetMapping(value = "/download")
|
||||
public void uploadImg(HttpServletResponse response, @NotBlank(message = "资源uri缺失") String url) {
|
||||
// 读取内容
|
||||
byte[] content = fileService.download(StrUtil.trim(url));
|
||||
try {
|
||||
FileUtils.downloadFile(response, content, "todo"); // 文件名todo
|
||||
} catch (IOException e) {
|
||||
throw new BizIllegalException("下载出错");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,21 +0,0 @@
|
||||
package cc.yunxi.domain.vo.common;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@Data
|
||||
@ApiModel(description = "文件上传 request VO")
|
||||
public class FileUploadReqVO {
|
||||
@ApiModelProperty(value = "文件附件", required = true)
|
||||
@NotNull(message = "文件附件不能为空")
|
||||
private MultipartFile file;
|
||||
|
||||
@ApiModelProperty(value = "自定义文件路径", required = false, example = "bbj.png")
|
||||
@NotEmpty(message = "文件路径不能为空")
|
||||
private String path;
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package cc.yunxi.domain.vo.file;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@Data
|
||||
@ApiModel(description = "文件上传 request VO")
|
||||
public class FileUploadReqVO {
|
||||
|
||||
@ApiModelProperty(value = "文件/图片", required = true)
|
||||
@NotNull(message = "未上传资源")
|
||||
private MultipartFile file;
|
||||
|
||||
// @ApiModelProperty(value = "业务类型", required = true)
|
||||
// @NotNull(message = "文件附件不能为空")
|
||||
// private String fileBusinessType;
|
||||
|
||||
// @ApiModelProperty(value = "自定义文件路径", hidden = true, example = "/xxx/yyyy/zzz")
|
||||
// @NotNull(message = "文件路径不能为空")
|
||||
// private String path;
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package cc.yunxi.domain.vo.file;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
@Data
|
||||
@ApiModel(description = "文件上传 Response VO")
|
||||
public class FileUploadRespVO {
|
||||
|
||||
@ApiModelProperty(value = "源文件名")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty(value = "资源uri")
|
||||
private String url;
|
||||
|
||||
@ApiModelProperty(value = "文件名")
|
||||
private String field;
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package cc.yunxi.enums;
|
||||
|
||||
import cc.yunxi.common.enums.BaseEnum;
|
||||
import cc.yunxi.common.enums.SwaggerDisplayEnum;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 回收订单类型枚举
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum FileStyleEnum implements BaseEnum {
|
||||
|
||||
DOC("1", "文件"),
|
||||
|
||||
IMAGE("2", "图片");
|
||||
|
||||
private final String code;
|
||||
|
||||
private final String desc;
|
||||
|
||||
}
|
Binary file not shown.
Loading…
Reference in new issue