diff --git a/src/main/java/org/olat/core/util/vfs/VFSMediaResource.java b/src/main/java/org/olat/core/util/vfs/VFSMediaResource.java index 9a1ebec95bb8a1b5ed5b4cc22cf8b45518561d01..57af586c4266ac1ed22a0567324fb5779b03dac5 100644 --- a/src/main/java/org/olat/core/util/vfs/VFSMediaResource.java +++ b/src/main/java/org/olat/core/util/vfs/VFSMediaResource.java @@ -55,8 +55,16 @@ public class VFSMediaResource implements MediaResource { public String getContentType() { String mimeType; if(downloadable) { - unknownMimeType = true; - mimeType = MIME_TYPE_FORCE_DOWNLOAD; + mimeType = WebappHelper.getMimeType(vfsLeaf.getName()); + //html, xhtml and javascript are set to force download + if (mimeType == null || "text/html".equals(mimeType) + || "application/xhtml+xml".equals(mimeType) + || "application/javascript".equals(mimeType)) { + mimeType = MIME_TYPE_FORCE_DOWNLOAD; + unknownMimeType = true; + } else if (encoding != null) { + mimeType = mimeType + ";charset=" + encoding; + } } else { mimeType = WebappHelper.getMimeType(vfsLeaf.getName()); if (mimeType == null) {