优化文本类型预览逻辑
parent
da1553920b
commit
d4b11a4056
|
@ -1,5 +1,6 @@
|
||||||
[#ftl]
|
[#ftl]
|
||||||
[#-- @implicitly included --]
|
[#-- @implicitly included --]
|
||||||
|
[#-- @ftlvariable name="textData" type="java.lang.String" --]
|
||||||
[#-- @ftlvariable name="xmlContent" type="java.lang.String" --]
|
[#-- @ftlvariable name="xmlContent" type="java.lang.String" --]
|
||||||
[#-- @ftlvariable name="textContent" type="java.lang.String" --]
|
[#-- @ftlvariable name="textContent" type="java.lang.String" --]
|
||||||
[#-- @ftlvariable name="textType" type="java.lang.String" --]
|
[#-- @ftlvariable name="textType" type="java.lang.String" --]
|
||||||
|
|
|
@ -29,32 +29,23 @@ public class SimTextFilePreviewImpl implements FilePreview {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute){
|
public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
|
||||||
String fileName = fileAttribute.getName();
|
String fileName = fileAttribute.getName();
|
||||||
ReturnResponse<String> response = downloadUtils.downLoad(fileAttribute, fileName);
|
ReturnResponse<String> response = downloadUtils.downLoad(fileAttribute, fileName);
|
||||||
if (0 != response.getCode()) {
|
if (0 != response.getCode()) {
|
||||||
model.addAttribute("msg", response.getMsg());
|
model.addAttribute("msg", response.getMsg());
|
||||||
model.addAttribute("fileType",fileAttribute.getSuffix());
|
model.addAttribute("fileType", fileAttribute.getSuffix());
|
||||||
return "fileNotSupported";
|
return "fileNotSupported";
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
File originFile = new File(response.getContent());
|
File originFile = new File(response.getContent());
|
||||||
File previewFile = new File(response.getContent() + ".txt");
|
String xmlString = FileUtils.readFileToString(originFile, StandardCharsets.UTF_8);
|
||||||
if (previewFile.exists()) {
|
model.addAttribute("textData", Base64Utils.encodeToString(xmlString.getBytes()));
|
||||||
previewFile.delete();
|
|
||||||
}
|
|
||||||
Files.copy(originFile.toPath(), previewFile.toPath());
|
|
||||||
if(fileAttribute.getType().equals(FileType.xml)){
|
|
||||||
String xmlString = FileUtils.readFileToString(previewFile, StandardCharsets.UTF_8);
|
|
||||||
|
|
||||||
model.addAttribute("xmlContent", Base64Utils.encodeToString(xmlString.getBytes()));
|
|
||||||
}
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
model.addAttribute("msg", e.getLocalizedMessage());
|
model.addAttribute("msg", e.getLocalizedMessage());
|
||||||
model.addAttribute("fileType",fileAttribute.getSuffix());
|
model.addAttribute("fileType", fileAttribute.getSuffix());
|
||||||
return "fileNotSupported";
|
return "fileNotSupported";
|
||||||
}
|
}
|
||||||
model.addAttribute("ordinaryUrl", response.getMsg());
|
|
||||||
return "txt";
|
return "txt";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<input hidden id="textType" value="${textType}">
|
<input hidden id="textType" value="${textType}">
|
||||||
|
<input hidden id="textData" value="${textData}">
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<#if textType?? && textType == "markdown">
|
<#if textType?? && textType == "markdown">
|
||||||
|
@ -16,7 +17,6 @@
|
||||||
</p>
|
</p>
|
||||||
<div id="markdown" style="padding: 18px;"></div>
|
<div id="markdown" style="padding: 18px;"></div>
|
||||||
<#elseif textType?? && textType == "xml" >
|
<#elseif textType?? && textType == "xml" >
|
||||||
<input hidden id="xmlContent" value="${xmlContent}">
|
|
||||||
<div id="xml" style="padding: 18px;"></div>
|
<div id="xml" style="padding: 18px;"></div>
|
||||||
<#else>
|
<#else>
|
||||||
<div id="text"></div>
|
<div id="text"></div>
|
||||||
|
@ -42,6 +42,9 @@
|
||||||
$("#markdown_btn").hide()
|
$("#markdown_btn").hide()
|
||||||
initWaterMark();
|
initWaterMark();
|
||||||
fetchData();
|
fetchData();
|
||||||
|
loadText();
|
||||||
|
loadXmlData()
|
||||||
|
loadMarkdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -73,17 +76,8 @@
|
||||||
* 获取文本数据
|
* 获取文本数据
|
||||||
*/
|
*/
|
||||||
function fetchData() {
|
function fetchData() {
|
||||||
$.ajax({
|
window.textData = Base64.decode($("#textData").val())
|
||||||
type: 'GET',
|
window.textPreData = "<pre>" + window.textData + "</pre>";
|
||||||
url: '${ordinaryUrl}',
|
|
||||||
success: function (data) {
|
|
||||||
window.textData = data;
|
|
||||||
window.textPreData = "<pre>" + data + "</pre>";
|
|
||||||
loadText();
|
|
||||||
loadXmlData()
|
|
||||||
loadMarkdown();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -108,8 +102,7 @@
|
||||||
*/
|
*/
|
||||||
function loadXmlData() {
|
function loadXmlData() {
|
||||||
if ($("#textType").val() === "xml") {
|
if ($("#textType").val() === "xml") {
|
||||||
var xmlStr = Base64.decode($("#xmlContent").val());
|
var xmlNode = xmlTreeViewer.parseXML(window.textData);
|
||||||
var xmlNode = xmlTreeViewer.parseXML(xmlStr);
|
|
||||||
var retNode = xmlTreeViewer.getXMLViewerNode(xmlNode.xml);
|
var retNode = xmlTreeViewer.getXMLViewerNode(xmlNode.xml);
|
||||||
$("#xml").html(retNode);
|
$("#xml").html(retNode);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue