Răsfoiți Sursa

ID下载文件

Gaokun Wang 2 săptămâni în urmă
părinte
comite
c233f5fc34

+ 4 - 4
eco-common/com-core/src/main/java/org/eco/vip/core/utils/FileDownloadUtils.java

@@ -7,8 +7,6 @@ package org.eco.vip.core.utils;
 
 
 import cn.hutool.core.io.FileUtil;
-import cn.hutool.core.io.IoUtil;
-import cn.hutool.core.util.URLUtil;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.slf4j.Slf4j;
 
@@ -43,12 +41,14 @@ public class FileDownloadUtils {
      */
     public static void download(String fileName, byte[] fileBytes, HttpServletResponse response) {
         try {
-            response.setHeader("Content-Disposition", "attachment;filename=" + URLUtil.encode(fileName));
+            String encodeFileName = URLUtils.encode(fileName);
+            response.setHeader("Content-Disposition", "attachment;filename=" + encodeFileName);
             response.addHeader("Content-Length", "" + fileBytes.length);
             response.setHeader("Access-Control-Allow-Origin", "*");
+            response.setHeader("download-filename", encodeFileName);
             response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
             response.setContentType("application/octet-stream;charset=UTF-8");
-            IoUtil.write(response.getOutputStream(), true, fileBytes);
+            IoUtils.write(response.getOutputStream(), true, fileBytes);
         } catch (IOException e) {
             log.error(">>> 文件下载异常:", e);
         }

+ 0 - 2
eco-common/com-excel/pom.xml

@@ -43,6 +43,4 @@
             </exclusions>
         </dependency>
     </dependencies>
-
-
 </project>

+ 4 - 5
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/controller/files/FilesController.java

@@ -65,7 +65,7 @@ public class FilesController {
 
     @DeleteMapping("/delete")
     @SaCheckPermission(value = "system:config:delete")
-    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空") List<String> ids) {
+    public CommonResult<Void> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空") List<String> ids) {
         boolean result = fileService.delete(ids);
         if (!result) {
             return fail("删除失败!");
@@ -75,7 +75,7 @@ public class FilesController {
 
     @DeleteMapping("/delete/file")
     @SaCheckPermission(value = "system:config:delete")
-    public CommonResult<String> deleteFile(@RequestBody @Valid @NotEmpty(message = "集合不能为空") List<String> ids) {
+    public CommonResult<Void> deleteFile(@RequestBody @Valid @NotEmpty(message = "集合不能为空") List<String> ids) {
         boolean result = fileService.deleteFile(ids);
         if (!result) {
             return fail("删除失败!");
@@ -84,13 +84,12 @@ public class FilesController {
     }
 
     @PostMapping("/upload")
-    public CommonResult<String> upload(@RequestPart("file") MultipartFile file) {
+    public CommonResult<FilesVO> upload(@RequestPart("file") MultipartFile file) {
         return success(fileService.upload(configService.getConfValue(ConfigConstants.FILE_ENGINE_KE), file), "");
     }
 
     @GetMapping(value = "/download/{id}", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
-    public CommonResult<Void> download(@PathVariable String id, HttpServletResponse response) throws IOException {
+    public void download(@PathVariable String id, HttpServletResponse response) throws IOException {
         fileService.download(id, response);
-        return success();
     }
 }

+ 4 - 3
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/files/FilesService.java

@@ -16,6 +16,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.eco.vip.core.constant.Constants;
 import org.eco.vip.core.exception.BusinessException;
 import org.eco.vip.core.pojo.PageResult;
+import org.eco.vip.core.utils.BeanUtils;
 import org.eco.vip.core.utils.FileDownloadUtils;
 import org.eco.vip.core.utils.FileLocalUtils;
 import org.eco.vip.core.utils.FileUtils;
@@ -126,7 +127,7 @@ public class FilesService extends BaseService<FilesMapper, Files> implements IFi
     }
 
     @Override
-    public String upload(String engine, MultipartFile file) {
+    public FilesVO upload(String engine, MultipartFile file) {
         return this.storageFile(engine, file);
     }
 
@@ -147,7 +148,7 @@ public class FilesService extends BaseService<FilesMapper, Files> implements IFi
      * @param file           文件
      * @return 文件id/url
      */
-    private String storageFile(String engine, MultipartFile file) {
+    private FilesVO storageFile(String engine, MultipartFile file) {
         String key = Seqs.getId(Seqs.UPLOAD_SEQ_TYPE);
         String path = FileUtils.genFilePath(key, file.getOriginalFilename());
         String storageUrl = FileLocalUtils.storageFileWithReturnUrl(Constants.LOCAL_FILE_BUCKET_KEY, path, file);
@@ -174,7 +175,7 @@ public class FilesService extends BaseService<FilesMapper, Files> implements IFi
         filesInfo.setDownloadUrl(downloadUrl);
         filesInfo.setStorageUrl(storageUrl);
         this.save(filesInfo);
-        return filesInfo.getFileId();
+        return BeanUtils.toBean(filesInfo, FilesVO.class);
     }
 
     private void uniDownload(String id, HttpServletResponse response) {

+ 1 - 1
eco-nexus-core/nexus-core-biz/src/main/java/org/eco/vip/nexus/core/service/files/IFilesService.java

@@ -90,7 +90,7 @@ public interface IFilesService extends IBaseService<Files> {
      * @param file 文件
      * @return id
      */
-    String upload(String engine, MultipartFile file);
+    FilesVO upload(String engine, MultipartFile file);
 
     /**
      * 文件下载