From 8f75df15e25985c5d999cf543532e3c58d77b946 Mon Sep 17 00:00:00 2001 From: kl Date: Fri, 26 Mar 2021 10:05:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20tif=E3=80=81tiff=20?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E9=A2=84=E8=A7=88=E5=88=9D=E5=A7=8B=E5=86=85?= =?UTF-8?q?=E5=AD=98=E5=A4=AA=E5=B0=8F=E9=A2=84=E8=A7=88=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/main/config/freemarker_implicit.ftl | 1 + .../cn/keking/service/impl/TiffFilePreviewImpl.java | 11 +++++++++++ server/src/main/resources/web/tiff.ftl | 3 +++ 3 files changed, 15 insertions(+) diff --git a/server/src/main/config/freemarker_implicit.ftl b/server/src/main/config/freemarker_implicit.ftl index 79dd0183..bc6a685c 100644 --- a/server/src/main/config/freemarker_implicit.ftl +++ b/server/src/main/config/freemarker_implicit.ftl @@ -1,5 +1,6 @@ [#ftl] [#-- @implicitly included --] +[#-- @ftlvariable name="initializeMemorySize" type="java.lang.Number" --] [#-- @ftlvariable name="currentUrl" type="java.lang.String" --] [#-- @ftlvariable name="file" type="cn.keking.model.FileAttribute" --] [#-- @ftlvariable name="fileName" type="java.lang.String" --] diff --git a/server/src/main/java/cn/keking/service/impl/TiffFilePreviewImpl.java b/server/src/main/java/cn/keking/service/impl/TiffFilePreviewImpl.java index 0d8b406d..3ebf02b6 100644 --- a/server/src/main/java/cn/keking/service/impl/TiffFilePreviewImpl.java +++ b/server/src/main/java/cn/keking/service/impl/TiffFilePreviewImpl.java @@ -2,8 +2,10 @@ package cn.keking.service.impl; import cn.keking.model.FileAttribute; import cn.keking.service.FilePreview; +import cn.keking.utils.WebUtils; import org.springframework.stereotype.Service; import org.springframework.ui.Model; +import org.springframework.util.StringUtils; /** * tiff 图片文件处理 @@ -14,6 +16,9 @@ import org.springframework.ui.Model; public class TiffFilePreviewImpl implements FilePreview { private final PictureFilePreviewImpl pictureFilePreview; + private static final String INITIALIZE_MEMORY_SIZE = "initializeMemorySize"; + //默认初始化 50MB 内存 + private static final long INITIALIZE_MEMORY_SIZE_VALUE_DEFAULT = 1024L * 1024 * 50; public TiffFilePreviewImpl(PictureFilePreviewImpl pictureFilePreview) { this.pictureFilePreview = pictureFilePreview; @@ -22,6 +27,12 @@ public class TiffFilePreviewImpl implements FilePreview { @Override public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) { pictureFilePreview.filePreviewHandle(url,model,fileAttribute); + String fileSize = WebUtils.getUrlParameterReg(url,INITIALIZE_MEMORY_SIZE); + if(StringUtils.hasText(fileSize)){ + model.addAttribute(INITIALIZE_MEMORY_SIZE,fileSize); + }else { + model.addAttribute(INITIALIZE_MEMORY_SIZE,Long.toString(INITIALIZE_MEMORY_SIZE_VALUE_DEFAULT)); + } return TIFF_FILE_PREVIEW_PAGE; } } diff --git a/server/src/main/resources/web/tiff.ftl b/server/src/main/resources/web/tiff.ftl index 6d5d53f2..dad85f91 100644 --- a/server/src/main/resources/web/tiff.ftl +++ b/server/src/main/resources/web/tiff.ftl @@ -30,6 +30,9 @@ var xhr = new XMLHttpRequest(); xhr.responseType = 'arraybuffer'; xhr.open('GET', $("#currentUrl").val()); + var config = {}; + config.TOTAL_MEMORY = ${initializeMemorySize}; + Tiff.initialize(config) xhr.onload = function (e) { var tiff = new Tiff({buffer: xhr.response}); var canvas = tiff.toCanvas();