mirror of
https://gitee.com/kekingcn/file-online-preview.git
synced 2025-10-25 02:09:09 +08:00
修复 tif、tiff 文件预览初始内存太小预览失败的问题
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
[#ftl]
|
[#ftl]
|
||||||
[#-- @implicitly included --]
|
[#-- @implicitly included --]
|
||||||
|
[#-- @ftlvariable name="initializeMemorySize" type="java.lang.Number" --]
|
||||||
[#-- @ftlvariable name="currentUrl" type="java.lang.String" --]
|
[#-- @ftlvariable name="currentUrl" type="java.lang.String" --]
|
||||||
[#-- @ftlvariable name="file" type="cn.keking.model.FileAttribute" --]
|
[#-- @ftlvariable name="file" type="cn.keking.model.FileAttribute" --]
|
||||||
[#-- @ftlvariable name="fileName" type="java.lang.String" --]
|
[#-- @ftlvariable name="fileName" type="java.lang.String" --]
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ package cn.keking.service.impl;
|
|||||||
|
|
||||||
import cn.keking.model.FileAttribute;
|
import cn.keking.model.FileAttribute;
|
||||||
import cn.keking.service.FilePreview;
|
import cn.keking.service.FilePreview;
|
||||||
|
import cn.keking.utils.WebUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.ui.Model;
|
import org.springframework.ui.Model;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* tiff 图片文件处理
|
* tiff 图片文件处理
|
||||||
@@ -14,6 +16,9 @@ import org.springframework.ui.Model;
|
|||||||
public class TiffFilePreviewImpl implements FilePreview {
|
public class TiffFilePreviewImpl implements FilePreview {
|
||||||
|
|
||||||
private final PictureFilePreviewImpl pictureFilePreview;
|
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) {
|
public TiffFilePreviewImpl(PictureFilePreviewImpl pictureFilePreview) {
|
||||||
this.pictureFilePreview = pictureFilePreview;
|
this.pictureFilePreview = pictureFilePreview;
|
||||||
@@ -22,6 +27,12 @@ public class TiffFilePreviewImpl implements FilePreview {
|
|||||||
@Override
|
@Override
|
||||||
public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
|
public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
|
||||||
pictureFilePreview.filePreviewHandle(url,model,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;
|
return TIFF_FILE_PREVIEW_PAGE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,9 @@
|
|||||||
var xhr = new XMLHttpRequest();
|
var xhr = new XMLHttpRequest();
|
||||||
xhr.responseType = 'arraybuffer';
|
xhr.responseType = 'arraybuffer';
|
||||||
xhr.open('GET', $("#currentUrl").val());
|
xhr.open('GET', $("#currentUrl").val());
|
||||||
|
var config = {};
|
||||||
|
config.TOTAL_MEMORY = ${initializeMemorySize};
|
||||||
|
Tiff.initialize(config)
|
||||||
xhr.onload = function (e) {
|
xhr.onload = function (e) {
|
||||||
var tiff = new Tiff({buffer: xhr.response});
|
var tiff = new Tiff({buffer: xhr.response});
|
||||||
var canvas = tiff.toCanvas();
|
var canvas = tiff.toCanvas();
|
||||||
|
|||||||
Reference in New Issue
Block a user