From c16116c7cdc1ea96dcecfa95d0ed20923d72af11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=B2=BE=E5=8D=8E?= <842761733@qq.com> Date: Tue, 19 May 2020 11:04:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E9=A2=84=E8=A7=88=E6=94=AF=E6=8C=81FTP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MediaFilePreviewImpl.java | 27 +++++++++++++++++++ .../main/java/cn/keking/utils/FileUtils.java | 6 ++--- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/jodconverter-web/src/main/java/cn/keking/service/impl/MediaFilePreviewImpl.java b/jodconverter-web/src/main/java/cn/keking/service/impl/MediaFilePreviewImpl.java index b445d23d..196b47f0 100644 --- a/jodconverter-web/src/main/java/cn/keking/service/impl/MediaFilePreviewImpl.java +++ b/jodconverter-web/src/main/java/cn/keking/service/impl/MediaFilePreviewImpl.java @@ -1,7 +1,11 @@ package cn.keking.service.impl; 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 cn.keking.web.filter.BaseUrlFilter; import org.springframework.stereotype.Service; import org.springframework.ui.Model; /** @@ -13,8 +17,31 @@ import org.springframework.ui.Model; @Service public class MediaFilePreviewImpl implements FilePreview { + private final DownloadUtils downloadUtils; + + private final FileUtils fileUtils; + + public MediaFilePreviewImpl(DownloadUtils downloadUtils, + FileUtils fileUtils) { + this.downloadUtils = downloadUtils; + this.fileUtils = fileUtils; + } + @Override public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) { + // 不是http开头,浏览器不能直接访问,需下载到本地 + if (url != null && !url.toLowerCase().startsWith("http")) { + ReturnResponse response = downloadUtils.downLoad(fileAttribute, fileAttribute.getName()); + if (0 != response.getCode()) { + model.addAttribute("fileType", fileAttribute.getSuffix()); + model.addAttribute("msg", response.getMsg()); + return "fileNotSupported"; + } else { + model.addAttribute("mediaUrl", BaseUrlFilter.getBaseUrl() + fileUtils.getRelativePath(response.getContent())); + } + } else { + model.addAttribute("mediaUrl", url); + } model.addAttribute("mediaUrl", url); String suffix=fileAttribute.getSuffix(); if ("flv".equalsIgnoreCase(suffix)) { diff --git a/jodconverter-web/src/main/java/cn/keking/utils/FileUtils.java b/jodconverter-web/src/main/java/cn/keking/utils/FileUtils.java index adf1143d..09e7523f 100644 --- a/jodconverter-web/src/main/java/cn/keking/utils/FileUtils.java +++ b/jodconverter-web/src/main/java/cn/keking/utils/FileUtils.java @@ -24,7 +24,9 @@ import java.util.Map; @Component public class FileUtils { - public static final String DEFAULT_CONVERTER_CHARSET = System.getProperty("sun.jnu.encoding"); + private static final String DEFAULT_CONVERTER_CHARSET = System.getProperty("sun.jnu.encoding"); + + private final String fileDir = ConfigConstants.getFileDir(); private final CacheService cacheService; @@ -32,8 +34,6 @@ public class FileUtils { this.cacheService = cacheService; } - String fileDir = ConfigConstants.getFileDir(); - /** * @return 已转换过的文件集合(缓存) */