增强了xml的预览效果

This commit is contained in:
kl
2020-12-25 20:41:34 +08:00
committed by kl
parent d787813bc6
commit da1553920b
12 changed files with 585 additions and 9 deletions

View File

@ -13,6 +13,7 @@ public enum FileType {
other("otherFilePreviewImpl"),
media("mediaFilePreviewImpl"),
markdown("markdownFilePreviewImpl"),
xml("xmlFilePreviewImpl"),
cad("cadFilePreviewImpl");

View File

@ -21,7 +21,7 @@ public class MarkdownFilePreviewImpl implements FilePreview {
@Override
public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
model.addAttribute("markdown","true");
model.addAttribute("textType","markdown");
return simTextFilePreview.filePreviewHandle(url, model, fileAttribute);
}
}

View File

@ -1,14 +1,18 @@
package cn.keking.service.impl;
import cn.keking.model.FileAttribute;
import cn.keking.model.FileType;
import cn.keking.model.ReturnResponse;
import cn.keking.service.FilePreview;
import cn.keking.utils.DownloadUtils;
import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Service;
import org.springframework.ui.Model;
import org.springframework.util.Base64Utils;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
/**
@ -40,6 +44,11 @@ public class SimTextFilePreviewImpl implements FilePreview {
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) {
model.addAttribute("msg", e.getLocalizedMessage());
model.addAttribute("fileType",fileAttribute.getSuffix());

View File

@ -0,0 +1,27 @@
package cn.keking.service.impl;
import cn.keking.model.FileAttribute;
import cn.keking.service.FilePreview;
import org.springframework.stereotype.Service;
import org.springframework.ui.Model;
/**
* @author kl (http://kailing.pub)
* @since 2020/12/25
*/
@Service
public class XmlFilePreviewImpl implements FilePreview {
private final SimTextFilePreviewImpl simTextFilePreview;
public XmlFilePreviewImpl(SimTextFilePreviewImpl simTextFilePreview) {
this.simTextFilePreview = simTextFilePreview;
}
@Override
public String filePreviewHandle(String url, Model model, FileAttribute fileAttribute) {
model.addAttribute("textType","xml");
return simTextFilePreview.filePreviewHandle(url, model, fileAttribute);
}
}

View File

@ -83,6 +83,9 @@ public class FileUtils {
if("md".equalsIgnoreCase(fileType)){
return FileType.markdown;
}
if("xml".equalsIgnoreCase(fileType)){
return FileType.xml;
}
if (Arrays.asList(simText).contains(fileType.toLowerCase())) {
return FileType.simText;
}