Ver código fonte

Merge branch 'dev_lsk_label' of www/taais into develop

feat: 数据标注功能,添加文件上传至指定文件夹接口
Sk18834839360 10 meses atrás
pai
commit
12b7485b1a

+ 33 - 0
taais-admin/src/main/java/com/taais/web/controller/common/CommonController.java

@@ -113,6 +113,39 @@ public class CommonController {
         }
     }
 
+    /**
+     * 通用上传请求(单个),不修改文件目录
+     */
+    @PostMapping("/uploadPure")
+    public CommonResult<SysOssUploadVo> uploadFilePure(MultipartFile file) throws Exception {
+        try {
+            // 上传文件路径
+            String filePath = TaaisConfig.getUploadPath();
+
+            // 上传并返回新文件名称
+
+            String fileName = FileUploadUtils.uploadPure(filePath, file);
+            String url = serverConfig.getUrl() + fileName;
+            String  originalFilename = file.getOriginalFilename();
+//            Map<String, Object> map = new HashMap<>();
+//            map.put("url", url);
+//            map.put("fileName", fileName);
+//            map.put("newFileName", FileUtils.getName(fileName));
+//            map.put("originalFilename", originalFilename);
+            assert originalFilename != null;
+            String suffix = StringUtils.substring(originalFilename, originalFilename.lastIndexOf("."), originalFilename.length());
+            // 信息保存在文件管理
+            SysOssVo oss = sysOssService.saveResultEntity(file.getOriginalFilename(),suffix, url,fileName);
+            SysOssUploadVo uploadVo = new SysOssUploadVo();
+            uploadVo.setUrl(oss.getUrl());
+            uploadVo.setFileName(oss.getOriginalName());
+            uploadVo.setOssId(oss.getOssId().toString());
+            return CommonResult.success(uploadVo);
+        } catch (Exception e) {
+            return CommonResult.fail(e.getMessage());
+        }
+    }
+
 
 
     /**

+ 56 - 0
taais-common/taais-common-core/src/main/java/com/taais/common/core/utils/file/FileUploadUtils.java

@@ -77,6 +77,22 @@ public class FileUploadUtils {
         }
     }
 
+    /**
+     * 根据文件路径上传,不修改上传路径
+     *
+     * @param baseDir 相对应用的基目录
+     * @param file    上传的文件
+     * @return 文件名称
+     * @throws IOException
+     */
+    public static final String uploadPure(String baseDir, MultipartFile file) throws IOException {
+        try {
+            return uploadPure(baseDir, file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+        } catch (Exception e) {
+            throw new IOException(e.getMessage(), e);
+        }
+    }
+
     /**
      * 文件上传
      *
@@ -107,6 +123,37 @@ public class FileUploadUtils {
         return getPathFileName(baseDir, fileName);
     }
 
+    /**
+     * 文件上传,不编码文件目录
+     *
+     * @param baseDir          相对应用的基目录
+     * @param file             上传的文件
+     * @param allowedExtension 上传文件类型
+     * @return 返回上传成功的文件名
+     * @throws FileSizeLimitExceededException       如果超出最大大小
+     * @throws FileNameLengthLimitExceededException 文件名太长
+     * @throws IOException                          比如读写文件出错时
+     * @throws InvalidExtensionException            文件校验异常
+     */
+    public static final String uploadPure(String baseDir, MultipartFile file, String[] allowedExtension)
+        throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException,
+        InvalidExtensionException {
+        int fileNamelength = Objects.requireNonNull(file.getOriginalFilename()).length();
+        if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH) {
+            throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH);
+        }
+
+        assertAllowed(file, allowedExtension);
+
+        String fileName = file.getOriginalFilename();
+        System.out.println("filename is: " + fileName);
+
+        String absPath = getAbsoluteFile(baseDir, fileName).getAbsolutePath();
+        file.transferTo(Paths.get(absPath));
+
+        return getPathFileName(baseDir, fileName);
+    }
+
     /**
      * 编码文件名
      */
@@ -114,6 +161,15 @@ public class FileUploadUtils {
         return StringUtils.format("{}/{}_{}.{}", DateUtils.datePath(),
             FilenameUtils.getBaseName(file.getOriginalFilename()), Seq.getId(Seq.uploadSeqType), getExtension(file));
     }
+
+    ///**
+    // * 编码文件名,但不添加后缀和日期
+    // */
+    //public static final String extractFilenamePure(MultipartFile file) {
+    //    return StringUtils.format("{}.{}", DateUtils.datePath(),
+    //        FilenameUtils.getBaseName(file.getOriginalFilename()), Seq.getId(Seq.uploadSeqType), getExtension(file));
+    //}
+
     public static final String extractFilename2(MultipartFile file) {
         return StringUtils.format("{}/{}.{}", DateUtils.allDatePath(),
             FilenameUtils.getBaseName(file.getOriginalFilename()), getExtension(file));

+ 1 - 1
taais-modules/taais-biz/src/main/java/com/taais/biz/domain/Data.java

@@ -20,7 +20,7 @@ import java.util.Date;
 public class Data {
 //    @Serial
 //    private static final long serialVersionUID = 1L;
-
+    @Id(keyType = KeyType.None)
     private Long id;
 
     /** 名称 */