优化文本类型预览逻辑

encoding
kl 2020-12-25 21:02:51 +08:00 committed by kl
parent da1553920b
commit d4b11a4056
3 changed files with 13 additions and 28 deletions

View File

@ -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" --]

View File

@ -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";
} }

View File

@ -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);
} }