diff --git a/bonus-modules/bonus-file/pom.xml b/bonus-modules/bonus-file/pom.xml
index f3b5647..8f4016c 100644
--- a/bonus-modules/bonus-file/pom.xml
+++ b/bonus-modules/bonus-file/pom.xml
@@ -65,7 +65,12 @@
com.bonus
bonus-common-swagger
-
+
+
+ commons-net
+ commons-net
+ 3.9.0
+
diff --git a/bonus-modules/bonus-file/src/main/java/com/bonus/file/controller/SysFileController.java b/bonus-modules/bonus-file/src/main/java/com/bonus/file/controller/SysFileController.java
index cc8b8ff..6729af6 100644
--- a/bonus-modules/bonus-file/src/main/java/com/bonus/file/controller/SysFileController.java
+++ b/bonus-modules/bonus-file/src/main/java/com/bonus/file/controller/SysFileController.java
@@ -1,9 +1,13 @@
package com.bonus.file.controller;
+import com.bonus.common.core.utils.Base64Utils;
+import com.bonus.file.utils.FileDownloadUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.bonus.common.core.domain.R;
@@ -11,6 +15,8 @@ import com.bonus.common.core.utils.file.FileUtils;
import com.bonus.file.service.ISysFileService;
import com.bonus.system.api.domain.SysFile;
+import java.io.IOException;
+
/**
* 文件请求处理
*
@@ -45,4 +51,35 @@ public class SysFileController
return R.fail(e.getMessage());
}
}
+
+ @GetMapping("/download")
+ public R downloadFile(String url, String destination) {
+ try {
+ String fileUrl = Base64Utils.decodeUrl(url);
+ if (fileUrl != null) {
+ String fileName = Base64Utils.getFileNameFromURL(fileUrl);
+ sysFileService.downloadFile(fileUrl, destination + "/" + fileName);
+ return R.ok();
+ }
+ } catch (Exception e) {
+ log.error("下载文件失败", e);
+ return R.fail(e.getMessage());
+ }
+ return R.fail("下载文件失败");
+ }
+
+ @GetMapping("/delete")
+ public R deleteFile(String url) {
+ try {
+ String fileUrl = Base64Utils.decodeUrl(url);
+ if (fileUrl != null) {
+ sysFileService.deleteFile(fileUrl);
+ return R.ok();
+ }
+ } catch (Exception e) {
+ log.error("delete文件失败", e);
+ return R.fail(e.getMessage());
+ }
+ return R.fail("传入参数不满足要求");
+ }
}
\ No newline at end of file
diff --git a/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/FastDfsSysFileServiceImpl.java b/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/FastDfsSysFileServiceImpl.java
index 4672ae9..8d626a5 100644
--- a/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/FastDfsSysFileServiceImpl.java
+++ b/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/FastDfsSysFileServiceImpl.java
@@ -43,4 +43,17 @@ public class FastDfsSysFileServiceImpl implements ISysFileService
IoUtils.closeQuietly(inputStream);
return domain + "/" + storePath.getFullPath();
}
+
+ @Override
+ public boolean downloadFile(String urlStr, String destination) throws Exception
+ {
+ return false;
+ }
+
+
+ @Override
+ public boolean deleteFile(String urlStr) throws Exception
+ {
+ return false;
+ }
}
diff --git a/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/ISysFileService.java b/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/ISysFileService.java
index ee70146..a5c7d7d 100644
--- a/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/ISysFileService.java
+++ b/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/ISysFileService.java
@@ -17,4 +17,11 @@ public interface ISysFileService
* @throws Exception
*/
public String uploadFile(MultipartFile file) throws Exception;
+
+
+ public boolean downloadFile(String urlStr, String destination) throws Exception;
+
+
+ public boolean deleteFile(String urlStr) throws Exception;
+
}
diff --git a/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/LocalSysFileServiceImpl.java b/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/LocalSysFileServiceImpl.java
index 7e3595b..abe1e07 100644
--- a/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/LocalSysFileServiceImpl.java
+++ b/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/LocalSysFileServiceImpl.java
@@ -1,11 +1,17 @@
package com.bonus.file.service;
+import com.bonus.file.utils.FileDownloadUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import com.bonus.file.utils.FileUploadUtils;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
/**
* 本地文件存储
*
@@ -47,4 +53,29 @@ public class LocalSysFileServiceImpl implements ISysFileService
String url = domain + localFilePrefix + name;
return url;
}
+
+ @Override
+ public boolean downloadFile(String urlStr, String destination) throws Exception
+ {
+ return FileDownloadUtils.downloadFile(urlStr, destination);
+ }
+
+
+ @Override
+ public boolean deleteFile(String urlStr) throws Exception
+ {
+ String regex = String.format("^(.*?%s)", localFilePrefix);
+ String updatePath = urlStr.replaceFirst(regex, localFilePath);
+ Path path = Paths.get(updatePath);
+ if (Files.exists(path)){
+ try {
+ Files.deleteIfExists(path);
+ }catch (IOException e){
+ throw new Exception(e.getMessage(), e);
+ }
+ }else {
+ throw new Exception("删除文件时文件不存在");
+ }
+ return true;
+ }
}
diff --git a/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/MinioSysFileServiceImpl.java b/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/MinioSysFileServiceImpl.java
index 6374369..b540455 100644
--- a/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/MinioSysFileServiceImpl.java
+++ b/bonus-modules/bonus-file/src/main/java/com/bonus/file/service/MinioSysFileServiceImpl.java
@@ -46,4 +46,17 @@ public class MinioSysFileServiceImpl implements ISysFileService
IoUtils.closeQuietly(inputStream);
return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName;
}
+
+ @Override
+ public boolean downloadFile(String urlStr, String destination) throws Exception
+ {
+ return false;
+ }
+
+
+ @Override
+ public boolean deleteFile(String urlStr) throws Exception
+ {
+ return false;
+ }
}