parent
8ff3b2c30a
commit
76d39774a2
@ -1,33 +1,60 @@
|
|||||||
package cc.yunxi.controller;
|
package cc.yunxi.controller;
|
||||||
|
|
||||||
import cc.yunxi.common.domain.CommonResult;
|
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 cc.yunxi.service.IFileService;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
@Api(tags = "文件接口")
|
@Api(tags = "文件接口")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/file")
|
@RequestMapping("/file")
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
@Validated
|
||||||
public class FileController {
|
public class FileController {
|
||||||
|
|
||||||
private final IFileService fileService;
|
private final IFileService fileService;
|
||||||
|
|
||||||
@ApiOperation("文件上传")
|
@ApiOperation("文件上传")
|
||||||
@PostMapping(value ="/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
@PostMapping(value ="/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||||
public CommonResult<String> upload(FileUploadReqVO uploadReqVO) {
|
public CommonResult<FileUploadRespVO> upload(FileUploadReqVO uploadReqVO) {
|
||||||
fileService.uploadFile(uploadReqVO);
|
FileUploadRespVO uploadRespVO = fileService.uploadFile(uploadReqVO);
|
||||||
return CommonResult.success("ok");
|
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