From 5196536bb43f7c088c20cd524f9f0e460bd33a33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=B2=BE=E5=8D=8E?= <842761733@qq.com> Date: Thu, 14 May 2020 16:22:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E9=A2=84=E8=A7=88ftp=E6=97=B6=EF=BC=8C=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E3=80=81pdf=E9=A2=84=E8=A7=88=E5=BC=82?= =?UTF-8?q?=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/PdfFilePreviewImpl.java | 15 +++++++++- .../service/impl/PictureFilePreviewImpl.java | 28 ++++++++++++++++--- .../src/main/resources/web/picture.ftl | 5 ++++ 3 files changed, 43 insertions(+), 5 deletions(-) diff --git a/jodconverter-web/src/main/java/cn/keking/service/impl/PdfFilePreviewImpl.java b/jodconverter-web/src/main/java/cn/keking/service/impl/PdfFilePreviewImpl.java index 05d358d0..e631d7f5 100644 --- a/jodconverter-web/src/main/java/cn/keking/service/impl/PdfFilePreviewImpl.java +++ b/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 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"; } diff --git a/jodconverter-web/src/main/java/cn/keking/service/impl/PictureFilePreviewImpl.java b/jodconverter-web/src/main/java/cn/keking/service/impl/PictureFilePreviewImpl.java index 56ee1f96..f7ad5a11 100644 --- a/jodconverter-web/src/main/java/cn/keking/service/impl/PictureFilePreviewImpl.java +++ b/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 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"; } } diff --git a/jodconverter-web/src/main/resources/web/picture.ftl b/jodconverter-web/src/main/resources/web/picture.ftl index 29912e51..b2e7cef8 100644 --- a/jodconverter-web/src/main/resources/web/picture.ftl +++ b/jodconverter-web/src/main/resources/web/picture.ftl @@ -24,6 +24,11 @@