Przeglądaj źródła

试验-规范管理-文件上传、文件删除

LHB 4 miesięcy temu
rodzic
commit
d80e8fdcc5

+ 15 - 5
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/PrivateStandardServiceImpl.java

@@ -1,5 +1,6 @@
 package org.springblade.business.service.impl;
 
+import cn.hutool.core.util.ReflectUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.business.entity.StandardFile;
@@ -19,11 +20,13 @@ import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.resource.feign.NewIOSSClient;
+import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -68,6 +71,7 @@ public class PrivateStandardServiceImpl extends ServiceImpl<PrivateStandardMappe
 
             try {
                 for (MultipartFile file : files) {
+
                     StandardFile standardFile = new StandardFile();
                     standardFile.setId(SnowFlakeUtil.getId());
                     standardFile.setStandardId(uWbsPrivateStandard.getId());
@@ -76,12 +80,15 @@ public class PrivateStandardServiceImpl extends ServiceImpl<PrivateStandardMappe
 
                     String originalFilename = file.getOriginalFilename();
                     standardFile.setFileName(originalFilename);
-                    originalFilename = "standard/" + uWbsPrivateStandard.getId() + "|" + originalFilename;
 
 
+                    originalFilename = "standard/" + uWbsPrivateStandard.getId() + "|" + originalFilename;
+//
+//                    ReflectUtil.setFieldValue(file,"filename",originalFilename);
 
+                    MockMultipartFile multipartFile = new MockMultipartFile("file", originalFilename, "application/pdf", file.getInputStream());
                     //Oss上传 传特殊文件名 在oss中做特殊路径处理
-                    BladeFile bladeFile = this.newIOSSClient.uploadFileByInputStream2(file.getOriginalFilename(), file.getInputStream());
+                    BladeFile bladeFile = newIOSSClient.uploadFileByInputStream(multipartFile);
 
                     standardFile.setStandardFileUrl(bladeFile.getLink());
                     standardFiles.add(standardFile);
@@ -89,7 +96,8 @@ public class PrivateStandardServiceImpl extends ServiceImpl<PrivateStandardMappe
             } catch (Exception e) {
                 //删除之前上传的文件
                 for (StandardFile standardFile : standardFiles) {
-                    this.newIOSSClient.removeFile(standardFile.getStandardFileUrl());
+                    String pdfName = standardFile.getStandardFileUrl().split("upload")[1];
+                    this.newIOSSClient.removeFile("upload" + pdfName);
                 }
                 e.printStackTrace();
                 throw new ServiceException("文件上传失败!请检查Oss");
@@ -136,7 +144,8 @@ public class PrivateStandardServiceImpl extends ServiceImpl<PrivateStandardMappe
             } catch (Exception e) {
                 //删除之前上传的文件
                 for (StandardFile standardFile : standardFiles) {
-                    this.newIOSSClient.removeFile(standardFile.getStandardFileUrl());
+                    String pdfName = standardFile.getStandardFileUrl().split("upload")[1];
+                    this.newIOSSClient.removeFile("upload" + pdfName);
                 }
                 e.printStackTrace();
                 throw new ServiceException("文件上传失败!请检查Oss");
@@ -192,7 +201,8 @@ public class PrivateStandardServiceImpl extends ServiceImpl<PrivateStandardMappe
         StandardFile byId = standardFileService.getById(id);
         if (byId != null) {
             try {
-                this.newIOSSClient.removeFile(byId.getStandardFileUrl());
+                String pdfName = byId.getStandardFileUrl().split("upload")[1];
+                this.newIOSSClient.removeFile("upload" + pdfName);
             } catch (Exception e) {
                 e.printStackTrace();
                 throw new ServiceException("文件删除失败,Oss异常");