Explorar o código

优化文件异常输入流未关闭的问题

RuoYi hai 9 meses
pai
achega
92c6d21855

+ 15 - 5
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/FastDfsSysFileServiceImpl.java

@@ -37,10 +37,20 @@ public class FastDfsSysFileServiceImpl implements ISysFileService
     @Override
     public String uploadFile(MultipartFile file) throws Exception
     {
-        InputStream inputStream = file.getInputStream();
-        StorePath storePath = storageClient.uploadFile(inputStream, file.getSize(),
-                FileTypeUtils.getExtension(file), null);
-        IoUtils.closeQuietly(inputStream);
-        return domain + "/" + storePath.getFullPath();
+        InputStream inputStream = null;
+        try
+        {
+            inputStream = file.getInputStream();
+            StorePath storePath = storageClient.uploadFile(inputStream, file.getSize(), FileTypeUtils.getExtension(file), null);
+            return domain + "/" + storePath.getFullPath();
+        }
+        catch (Exception e)
+        {
+            throw new RuntimeException("FastDfs Failed to upload file", e);
+        }
+        finally
+        {
+            IoUtils.closeQuietly(inputStream);
+        }
     }
 }

+ 22 - 11
ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/service/MinioSysFileServiceImpl.java

@@ -34,16 +34,27 @@ public class MinioSysFileServiceImpl implements ISysFileService
     @Override
     public String uploadFile(MultipartFile file) throws Exception
     {
-        String fileName = FileUploadUtils.extractFilename(file);
-        InputStream inputStream = file.getInputStream();
-        PutObjectArgs args = PutObjectArgs.builder()
-                .bucket(minioConfig.getBucketName())
-                .object(fileName)
-                .stream(inputStream, file.getSize(), -1)
-                .contentType(file.getContentType())
-                .build();
-        client.putObject(args);
-        IoUtils.closeQuietly(inputStream);
-        return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName;
+        InputStream inputStream = null;
+        try
+        {
+            String fileName = FileUploadUtils.extractFilename(file);
+            inputStream = file.getInputStream();
+            PutObjectArgs args = PutObjectArgs.builder()
+                    .bucket(minioConfig.getBucketName())
+                    .object(fileName)
+                    .stream(inputStream, file.getSize(), -1)
+                    .contentType(file.getContentType())
+                    .build();
+            client.putObject(args);
+            return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName;
+        }
+        catch (Exception e)
+        {
+            throw new RuntimeException("Minio Failed to upload file", e);
+        }
+        finally
+        {
+            IoUtils.closeQuietly(inputStream);
+        }
     }
 }