Bladeren bron

3.3.1 上传文件方法

xiaofei 1 jaar geleden
bovenliggende
commit
517334befe

+ 2 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/FileUploadService.java

@@ -8,7 +8,8 @@ import java.io.File;
 
 public interface FileUploadService {
 
-    FilePathVo uploadFile(File pdfFile, UploadFileEnum uploadFileEnum, String fileName);
+    FilePathVo uploadFile(File sourceFile, UploadFileEnum uploadFileEnum, String fileName);
+    FilePathVo uploadFile(File sourceFile, String filePathName, UploadFileEnum uploadFileEnum);
     File downloadFile(String path, String pathName) throws Exception;
     File downloadFile(String type, UploadFileEnum uploadFileEnum, String path, String pathName) throws Exception;
     File downloadFile(Long attachmentId, String pathName) throws Exception;

+ 37 - 4
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/FileUploadServiceImpl.java

@@ -47,12 +47,12 @@ public class FileUploadServiceImpl implements FileUploadService {
     /**
      * 上传文件
      *
-     * @param pdfFile        上传文件
+     * @param sourceFile     上传文件
      * @param uploadFileEnum 文件类型
      * @param fileName       文件名称
      */
     @Override
-    public FilePathVo uploadFile(File pdfFile, UploadFileEnum uploadFileEnum, String fileName) {
+    public FilePathVo uploadFile(File sourceFile, UploadFileEnum uploadFileEnum, String fileName) {
         try {
             boolean oss = dictionaryConfig.sysDomain().isOss();
             StringJoiner pdfStringJoiner = new StringJoiner("");
@@ -64,10 +64,43 @@ public class FileUploadServiceImpl implements FileUploadService {
             pdfStringJoiner.add(fileName);
 
             String uploadFileName = FileUtil.replaceSplit(pdfStringJoiner.toString());
-            uploadFile(oss, uploadFileEnum, uploadFileName, pdfFile);
+            uploadFile(oss, uploadFileEnum, uploadFileName, sourceFile);
 
             String type = isOssUpload(oss, uploadFileEnum) ? SystemConstant.OSS : SystemConstant.LOCAL;
-            return new FilePathVo(uploadFileName, uploadFileEnum, type, FileUtil.md5File(pdfFile));
+            return new FilePathVo(uploadFileName, uploadFileEnum, type, FileUtil.md5File(sourceFile));
+        } catch (Exception e) {
+            log.error(SystemConstant.LOG_ERROR, e);
+            if (e instanceof ApiException) {
+                ResultUtil.error((ApiException) e, e.getMessage());
+            } else {
+                ResultUtil.error(e.getMessage());
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 上传文件(指定保存路径)
+     *
+     * @param sourceFile     上传文件
+     * @param filePathName   文件名称(路径+文件名)
+     * @param uploadFileEnum 文件类型
+     */
+    @Override
+    public FilePathVo uploadFile(File sourceFile, String filePathName, UploadFileEnum uploadFileEnum) {
+        try {
+            boolean oss = dictionaryConfig.sysDomain().isOss();
+            StringJoiner pdfStringJoiner = new StringJoiner("");
+            String fssConfig = findFssConfig(oss, uploadFileEnum);
+            if (StringUtils.isNotBlank(fssConfig)) {
+                pdfStringJoiner.add(dictionaryConfig.fssPrivateDomain().getConfig()).add(File.separator);
+            }
+            pdfStringJoiner.add(uploadFileEnum.getTitle()).add(File.separator).add(filePathName);
+            String uploadFileName = FileUtil.replaceSplit(pdfStringJoiner.toString());
+            uploadFile(oss, uploadFileEnum, uploadFileName, sourceFile);
+
+            String type = isOssUpload(oss, uploadFileEnum) ? SystemConstant.OSS : SystemConstant.LOCAL;
+            return new FilePathVo(uploadFileName, uploadFileEnum, type, FileUtil.md5File(sourceFile));
         } catch (Exception e) {
             log.error(SystemConstant.LOG_ERROR, e);
             if (e instanceof ApiException) {