孙永军 1 éve
szülő
commit
d3ba36972f

+ 2 - 7
src/main/java/com/sxtvs/open/api/bid/controller/BidFilesController.java

@@ -43,13 +43,8 @@ public class BidFilesController {
     public List<String> upload(@RequestParam(value = "id") Long id, @RequestParam("files") MultipartFile[] file){
         List<String> urls = new ArrayList<>();
         for( MultipartFile multipartFile : file){
-            String s;
-            if(Objects.requireNonNull(multipartFile.getOriginalFilename()).endsWith(".doc")){
-                s = ossService.bidDocPut(multipartFile, id);
-            }else{
-               s = ossService.bidPut(multipartFile, id);
-            }
-            urls.add(s);
+
+            urls.add(ossService.bidUpload(multipartFile, id));
         }
         return urls;
     }

+ 4 - 0
src/main/java/com/sxtvs/open/api/bid/service/impl/BidProjectServiceImpl.java

@@ -17,9 +17,11 @@ import org.apache.http.util.TextUtils;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.time.LocalDateTime;
 import java.util.List;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.stream.Collectors;
 
@@ -100,4 +102,6 @@ public class BidProjectServiceImpl extends ServiceImpl<BidProjectMapper, BidProj
         bidFilesService.create(fileImportDTO);
         stringRedisTemplate.convertAndSend("bid_compare", String.valueOf(fileImportDTO.getProjectId()));
     }
+
+
 }

+ 24 - 1
src/main/java/com/sxtvs/open/api/h5template/service/impl/OSSService.java

@@ -17,6 +17,7 @@ import org.apache.http.util.TextUtils;
 import org.apache.poi.hwpf.HWPFDocument;
 import org.apache.poi.hwpf.extractor.WordExtractor;
 import org.apache.poi.hwpf.usermodel.Range;
+import org.apache.poi.poifs.filesystem.FileMagic;
 import org.apache.poi.xwpf.usermodel.XWPFDocument;
 import org.apache.poi.xwpf.usermodel.XWPFParagraph;
 import org.apache.poi.xwpf.usermodel.XWPFRun;
@@ -28,6 +29,7 @@ import java.net.*;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 import java.util.UUID;
 
 
@@ -180,7 +182,12 @@ public class OSSService {
         xwpfDocument.write(fos);
 
         String dir = "open/bid/" + id + "/";
-        String fileUrl = dir + file.getOriginalFilename() + "x";
+        String oname = Objects.requireNonNull(file.getOriginalFilename());
+        if (oname.endsWith(".doc")){
+            oname = oname + "x";
+        }
+
+        String fileUrl = dir + oname;
         ossClient.putObject(bucket, fileUrl , new ByteArrayInputStream(fos.toByteArray()));
         fos.close();
         fis.reset();
@@ -200,6 +207,22 @@ public class OSSService {
         }
     }
 
+    public String bidUpload(MultipartFile multipartFile, Long id)  {
+        try {
+            String s;
+            if(FileMagic.valueOf(multipartFile.getInputStream()) == FileMagic.OLE2){
+                s = bidDocPut(multipartFile, id);
+            }else{
+                s = bidPut(multipartFile, id);
+            }
+            return s;
+        }catch (Exception e){
+            log.error("上传失败");
+            throw new BizException("上传失败");
+        }
+
+    }
+
 }