【修复】图片上传组件

This commit is contained in:
jeromesoar 2022-04-24 22:06:22 +08:00
parent 760344727d
commit c8f3eb6fdf
3 changed files with 30 additions and 8 deletions

View File

@ -1,12 +1,14 @@
package cn.iocoder.yudao.module.infra.controller.admin.file; package cn.iocoder.yudao.module.infra.controller.admin.file;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil; import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.IdUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FilePageReqVO; import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FilePageReqVO;
import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FileRespVO; import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FileRespVO;
import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.SimpleUploadRespVO;
import cn.iocoder.yudao.module.infra.convert.file.FileConvert; import cn.iocoder.yudao.module.infra.convert.file.FileConvert;
import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO; import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO;
import cn.iocoder.yudao.module.infra.service.file.FileService; import cn.iocoder.yudao.module.infra.service.file.FileService;
@ -24,7 +26,6 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.Date;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@ -54,10 +55,14 @@ public class FileController {
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "file", value = "文件附件", required = true, dataTypeClass = MultipartFile.class), @ApiImplicitParam(name = "file", value = "文件附件", required = true, dataTypeClass = MultipartFile.class),
}) })
public CommonResult<String> uploadFile(@RequestParam("file") MultipartFile file) throws Exception { public CommonResult<SimpleUploadRespVO> uploadFile(@RequestParam("file") MultipartFile file) throws Exception {
String path = DateUtil.format(new Date(), "yyyy/MM/dd/") + file.getOriginalFilename(); SimpleUploadRespVO simpleUploadRespVO = new SimpleUploadRespVO();
String file1 = fileService.createFile(path, IoUtil.readBytes(file.getInputStream())); simpleUploadRespVO.setFileName(file.getOriginalFilename());
return success(file1); // TODO 日期路径, 随机文件名
String path = IdUtil.fastSimpleUUID() + "." + FileUtil.extName(file.getOriginalFilename());
String fileUrl = fileService.createFile(path, IoUtil.readBytes(file.getInputStream()));
simpleUploadRespVO.setFileUrl(fileUrl);
return success(simpleUploadRespVO);
} }
@DeleteMapping("/delete") @DeleteMapping("/delete")

View File

@ -0,0 +1,16 @@
package cn.iocoder.yudao.module.infra.controller.admin.file.vo.file;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "管理后台 - 简单上传文件 VO", description = "简单上传文件, 不需要 path")
public class SimpleUploadRespVO {
@ApiModelProperty(value = "文件名", required = true, example = "yudao.jpg")
private String fileName;
@ApiModelProperty(value = "文件 URL", required = true, example = "https://www.iocoder.cn/yudao.jpg")
private String fileUrl;
}

View File

@ -93,7 +93,8 @@ export default {
// //
this.fileList = list.map(item => { this.fileList = list.map(item => {
if (typeof item === "string") { if (typeof item === "string") {
if (item.indexOf(this.baseUrl) === -1) { // http , baseUrl.
if (item.indexOf("http") === -1) {
item = { name: this.baseUrl + item, url: this.baseUrl + item }; item = { name: this.baseUrl + item, url: this.baseUrl + item };
} else { } else {
item = { name: item, url: item }; item = { name: item, url: item };
@ -127,7 +128,7 @@ export default {
}, },
// //
handleUploadSuccess(res) { handleUploadSuccess(res) {
this.uploadList.push({ name: res.data, url: res.data }); this.uploadList.push({ name: res.data.fileName, url: res.data.fileUrl });
if (this.uploadList.length === this.number) { if (this.uploadList.length === this.number) {
this.fileList = this.fileList.concat(this.uploadList); this.fileList = this.fileList.concat(this.uploadList);
this.uploadList = []; this.uploadList = [];