diff --git a/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/doc/XWikiAttachment.java b/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/doc/XWikiAttachment.java index 5436c26..de6c6d5 100644 --- a/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/doc/XWikiAttachment.java +++ b/xwiki-platform-core/xwiki-platform-oldcore/src/main/java/com/xpn/xwiki/doc/XWikiAttachment.java @@ -19,6 +19,7 @@ */ package com.xpn.xwiki.doc; +import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; @@ -28,6 +29,7 @@ import java.util.List; import org.apache.commons.codec.binary.Base64; +import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringUtils; import org.dom4j.Document; import org.dom4j.DocumentException; @@ -404,7 +406,13 @@ public void toXML(XMLWriter wr, boolean bWithAttachmentContent, boolean bWithVer loadContent(context); XWikiAttachmentContent acontent = getAttachment_content(); if (acontent != null) { - wr.writeBase64(el, getAttachment_content().getContentInputStream()); + String contentType = getMimeType(context); + if (contentType.startsWith("text/")) { + String sContent = new String(acontent.getContent()); + wr.write(el, new ByteArrayInputStream(StringEscapeUtils.escapeXml(sContent).getBytes())); + } else { + wr.writeBase64(el, getAttachment_content().getContentInputStream()); + } } else { el.addText(""); wr.write(el); diff --git a/xwiki-platform-core/xwiki-platform-web/src/main/webapp/WEB-INF/web.xml b/xwiki-platform-core/xwiki-platform-web/src/main/webapp/WEB-INF/web.xml index dcf610b..cbc29fe 100644 --- a/xwiki-platform-core/xwiki-platform-web/src/main/webapp/WEB-INF/web.xml +++ b/xwiki-platform-core/xwiki-platform-web/src/main/webapp/WEB-INF/web.xml @@ -301,6 +301,12 @@ text/css + + + vm + text/velocity + + htc