Bladeren bron

修复:修复预览ftp时,图片图片、pdf预览异常

陈精华 4 jaren geleden
bovenliggende
commit
5196536bb4

+ 14 - 1
jodconverter-web/src/main/java/cn/keking/service/impl/PdfFilePreviewImpl.java

@@ -39,7 +39,6 @@ public class PdfFilePreviewImpl implements FilePreview{
         String fileName=fileAttribute.getName();
         String officePreviewType = model.asMap().get("officePreviewType") == null ? ConfigConstants.getOfficePreviewType() : model.asMap().get("officePreviewType").toString();
         String baseUrl = BaseUrlFilter.getBaseUrl();
-        model.addAttribute("pdfUrl", url);
         String pdfName = fileName.substring(0, fileName.lastIndexOf(".") + 1) + "pdf";
         String outFilePath = fileDir + pdfName;
         if (OfficeFilePreviewImpl.OFFICE_PREVIEW_TYPE_IMAGE.equals(officePreviewType) || OfficeFilePreviewImpl.OFFICE_PREVIEW_TYPE_ALLIMAGES.equals(officePreviewType)) {
@@ -64,6 +63,20 @@ public class PdfFilePreviewImpl implements FilePreview{
             } else {
                 return "picture";
             }
+        } else {
+            // 不是http开头,浏览器不能直接访问,需下载到本地
+            if (url != null && !url.toLowerCase().startsWith("http")) {
+                ReturnResponse<String> response = downloadUtils.downLoad(fileAttribute, pdfName);
+                if (0 != response.getCode()) {
+                    model.addAttribute("fileType", suffix);
+                    model.addAttribute("msg", response.getMsg());
+                    return "fileNotSupported";
+                } else {
+                    model.addAttribute("pdfUrl", fileUtils.getRelativePath(response.getContent()));
+                }
+            } else {
+                model.addAttribute("pdfUrl", url);
+            }
         }
         return "pdf";
     }

+ 24 - 4
jodconverter-web/src/main/java/cn/keking/service/impl/PictureFilePreviewImpl.java

@@ -1,7 +1,10 @@
 package cn.keking.service.impl;
 
+import cn.keking.config.ConfigConstants;
 import cn.keking.model.FileAttribute;
+import cn.keking.model.ReturnResponse;
 import cn.keking.service.FilePreview;
+import cn.keking.utils.DownloadUtils;
 import cn.keking.utils.FileUtils;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,18 +24,35 @@ public class PictureFilePreviewImpl implements FilePreview {
     @Autowired
     FileUtils fileUtils;
 
+    @Autowired
+    DownloadUtils downloadUtils;
+
     @Override
     public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
         String fileKey = (String) RequestContextHolder.currentRequestAttributes().getAttribute("fileKey",0);
         List imgUrls = Lists.newArrayList(url);
-        try{
+        try {
             imgUrls.clear();
             imgUrls.addAll(fileUtils.getImgCache(fileKey));
-        }catch (Exception e){
+        } catch (Exception e){
             imgUrls = Lists.newArrayList(url);
         }
-        model.addAttribute("imgurls", imgUrls);
-        model.addAttribute("currentUrl",url);
+        // 不是http开头,浏览器不能直接访问,需下载到本地
+        if (url != null && !url.toLowerCase().startsWith("http")) {
+            ReturnResponse<String> response = downloadUtils.downLoad(fileAttribute, null);
+            if (0 != response.getCode()) {
+                model.addAttribute("fileType", fileAttribute.getSuffix());
+                model.addAttribute("msg", response.getMsg());
+                return "fileNotSupported";
+            } else {
+                String file = fileUtils.getRelativePath(response.getContent());
+                model.addAttribute("imgurls", Lists.newArrayList(file));
+                model.addAttribute("currentUrl", file);
+            }
+        } else {
+            model.addAttribute("imgurls", imgUrls);
+            model.addAttribute("currentUrl", url);
+        }
         return "picture";
     }
 }

+ 5 - 0
jodconverter-web/src/main/resources/web/picture.ftl

@@ -24,6 +24,11 @@
 <body>
 <ul id="dowebok">
     <#list imgurls as img>
+        <#if img?contains("http://") || img?contains("https://")>
+            <#assign img="${img}">
+        <#else>
+            <#assign img="${baseUrl}${img}">
+        </#if>
         <li><img id="${img}"  url="${img}" src="${img}" width="1px" height="1px"></li>
     </#list>
 </ul>