瀏覽代碼

* tif图片预览,根据反馈的意见,已经全部修改
1、配置文件、配置项默认值已改回image、tif
2、去掉了静态工具类上的@component 注解
3、修改OnlinePreview处理,在切换image方式预览时url中加入参数previewType=image,加入对应的处理,兼容在pdf预览模式下切换到JPG方式预览

zhangzhen1979 3 年之前
父節點
當前提交
6387ac21c9

+ 2 - 2
server/src/main/config/application.properties

@@ -67,7 +67,7 @@ media.convert.disable = ${KK_MEDIA_CONVERT_DISABLE:false}
 #支持转换的视频类型
 convertMedias = ${KK_CONVERTMEDIAS:avi,mov,wmv,mkv,3gp,rm}
 #office类型文档(word ppt)样式,默认为图片(image),可配置为pdf(预览时也有按钮切换)
-office.preview.type = ${KK_OFFICE_PREVIEW_TYPE:pdf}
+office.preview.type = ${KK_OFFICE_PREVIEW_TYPE:image}
 #是否关闭office预览切换开关,默认为false,可配置为true关闭
 office.preview.switch.disabled = ${KK_OFFICE_PREVIEW_SWITCH_DISABLED:false}
 
@@ -107,5 +107,5 @@ watermark.height = ${WATERMARK_HEIGHT:80}
 watermark.angle = ${WATERMARK_ANGLE:10}
 
 #Tif类型图片浏览模式:tif(利用前端js插件浏览);jpg(转换为jpg后前端显示);pdf(转换为pdf后显示,便于打印)
-tif.preview.type = ${KK_TIF_PREVIEW_TYPE:tif}
+tif.preview.type = ${KK_TIF_PREVIEW_TYPE:pdf}
 

+ 1 - 1
server/src/main/java/cn/keking/config/ConfigConstants.java

@@ -53,7 +53,7 @@ public class ConfigConstants {
     public static final String DEFAULT_TRUST_HOST = "default";
     public static final String DEFAULT_PDF_DOWNLOAD_DISABLE = "true";
     public static final String DEFAULT_FILE_UPLOAD_DISABLE = "false";
-    public static final String DEFAULT_TIF_PREVIEW_TYPE = "jpg";
+    public static final String DEFAULT_TIF_PREVIEW_TYPE = "tif";
 
     public static Boolean isCacheEnabled() {
         return cacheEnabled;

+ 5 - 5
server/src/main/java/cn/keking/service/impl/TiffFilePreviewImpl.java

@@ -41,6 +41,7 @@ public class TiffFilePreviewImpl implements FilePreview {
     public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
 
         String tifPreviewType = ConfigConstants.getTifPreviewType();
+        String priveiwType = String.valueOf(model.getAttribute("previewType"));
 
         if("tif".equalsIgnoreCase(tifPreviewType)){
 
@@ -71,15 +72,14 @@ public class TiffFilePreviewImpl implements FilePreview {
 
             if(fileJpg.exists()){
                 // 转换后的tif没用了,可以删掉了
-                fileTiff.delete();
+                if(fileTiff.exists()){
+                    fileTiff.delete();
+                }
 
                 String baseUrl = BaseUrlFilter.getBaseUrl();
-                if("pdf".equalsIgnoreCase(tifPreviewType)){
+                if("pdf".equalsIgnoreCase(tifPreviewType) && !"image".equalsIgnoreCase(priveiwType)){
                     File filePdf = ConvertPicUtil.convertJpg2Pdf(fileDir + uuid + ".jpg", fileDir + uuid + ".pdf");
                     if(filePdf.exists()){
-                        // 转换后的jpg没用了,可以删掉了
-                        fileJpg.delete();
-
                         String pdfUrl = baseUrl + uuid + ".pdf";
                         model.addAttribute("pdfUrl", pdfUrl);
 

+ 0 - 2
server/src/main/java/cn/keking/utils/ConvertPicUtil.java

@@ -8,13 +8,11 @@ import com.lowagie.text.pdf.PdfWriter;
 import com.sun.media.jai.codec.ImageCodec;
 import com.sun.media.jai.codec.ImageEncoder;
 import com.sun.media.jai.codec.JPEGEncodeParam;
-import org.springframework.stereotype.Component;
 
 import javax.media.jai.JAI;
 import javax.media.jai.RenderedOp;
 import java.io.*;
 
-@Component
 public class ConvertPicUtil {
 
     /**

+ 4 - 0
server/src/main/java/cn/keking/web/controller/OnlinePreviewController.java

@@ -70,6 +70,10 @@ public class OnlinePreviewController {
         }
         FileAttribute fileAttribute = fileHandlerService.getFileAttribute(fileUrl, req);
         model.addAttribute("file", fileAttribute);
+
+        String previewType = req.getParameter("previewType");
+        model.addAttribute("previewType", previewType);
+
         FilePreview filePreview = previewFactory.get(fileAttribute);
         logger.info("预览文件url:{},previewType:{}", fileUrl, fileAttribute.getType());
         return filePreview.filePreviewHandle(fileUrl, model, fileAttribute);

+ 3 - 1
server/src/main/resources/web/pdf.ftl

@@ -37,12 +37,14 @@
     }
 
     function goForImage() {
-        var url = window.location.href;
+        var url = window.location.href + "&previewType=image"
+        console.log(url);
         if (url.indexOf("officePreviewType=pdf") != -1) {
             url = url.replace("officePreviewType=pdf", "officePreviewType=image");
         } else {
             url = url + "&officePreviewType=image";
         }
+        console.log(url);
         window.location.href = url;
     }