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 已转换过的文件集合(缓存) */