Browse Source

文本预览转义处理

kl 4 years ago
parent
commit
5cad4aa93e

+ 1 - 1
server/src/main/java/cn/keking/model/FileType.java

@@ -31,7 +31,7 @@ public enum FileType {
     private static final String[] ARCHIVE_TYPES = {"rar", "zip", "jar", "7-zip", "tar", "gzip", "7z"};
     private static final String[] TIFF_TYPES = {"tif", "tiff"};
     private static final String[] SSIM_TEXT_TYPES = ConfigConstants.getSimText();
-    private static final String[] CODES = {"java", "c", "php", "go", "python", "py", "js", "html", "ftl", "css", "lua", "sh", "rb", "h", "cpp", "cs", "aspx", "jsp"};
+    private static final String[] CODES = {"java", "c", "php", "go", "python", "py", "js", "html", "ftl", "css", "lua", "sh", "rb", "yml", "json", "h", "cpp", "cs", "aspx", "jsp"};
     private static final String[] MEDIA_TYPES = ConfigConstants.getMedia();
     private static final Map<String, FileType> FILE_TYPE_MAPPER = new HashMap<>();
 

+ 3 - 0
server/src/main/java/cn/keking/service/impl/SimTextFilePreviewImpl.java

@@ -9,9 +9,11 @@ import jodd.io.FileUtil;
 import org.apache.commons.codec.binary.Base64;
 import org.springframework.stereotype.Service;
 import org.springframework.ui.Model;
+import org.springframework.web.util.HtmlUtils;
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 
 /**
  * Created by kl on 2018/1/17.
@@ -37,6 +39,7 @@ public class SimTextFilePreviewImpl implements FilePreview {
             File originFile = new File(response.getContent());
             String charset = KkFileUtils.getFileEncode(originFile);
             String fileData = FileUtil.readString(originFile, charset);
+            fileData = HtmlUtils.htmlEscape(fileData, StandardCharsets.UTF_8.name());
             model.addAttribute("textData", Base64.encodeBase64String(fileData.getBytes()));
         } catch (IOException e) {
             return otherFilePreview.notSupportedFile(model, fileAttribute, e.getLocalizedMessage());