【问题标题】:How to skip MIME type check for .OFT file extensions on MediaWiki如何在 MediaWiki 上跳过 .OFT 文件扩展名的 MIME 类型检查
【发布时间】:2020-08-23 02:14:00
【问题描述】:
在我的私人 wiki 上,我已启用使用 $wgFileExtensions 上传 Microsoft Outlook 2016 电子邮件模板 (.oft)。但是在上传一个经常文件时,我遇到了错误File extension ".oft" does not match the detected MIME type of the file (application/sla)。
有没有办法解决或克服这个问题?或者可能是一种仅跳过 MIME 检查的方法?如果是这样,您能帮我提供必要的代码吗?
我还希望在单击文件链接时运行 Outlook。但这不像修复错误那样导入...感谢您的帮助。
【问题讨论】:
标签:
outlook
mediawiki
email-templates
mediawiki-installation
oft
【解决方案1】:
有一种快速且更安全的方法。
最简单的选择是允许上传 MIME 类型与扩展名不匹配的内容。您可以通过在 LocalSettings.php 中添加以下内容来做到这一点(确保没有冲突的语句在另一行:
$wgStrictFileExtensions = "false";
如 Mediawiki 文档中所述,禁用 $wgStrictFileExtensions 是一个严重的安全风险,因此只有在您信任所有具有上传权限的用户时才这样做。它会给用户一个关于文件类型的警告,但无论如何都要上传文件。要完全不检查 MediaWiki,请使用以下命令彻底禁用 $wgVerifyMimeType:
$wgVerifyMimeType= "false";
更合适的方法是让 MediaWiki 知道 'application/sla' 对于 .oft 文件是可以的。具有该扩展名的默认 MIME 类型数据库 expects 文件是 ODF 公式模板。
您可以通过为 MediaWiki 提供您自己的 MIME 类型定义文件来更改它。
在 Linux 中,您可能有 - 例如在 Debian 中,它是 /etc/mime.types。您可以添加行
application/sla oft
并确保 LocalSettings.php 已将 $wgMimeTypeFile 设置为链接到该文件。在 Debian 示例中:
$wgMimeTypeFile = "/etc/mime.types";
【解决方案2】:
经过进一步阅读,我终于找到了一个非hacky的解决方案来上传.oft:
- 如果尚未完成,请将
.oft 文件添加到支持的扩展列表 ($wgFileExtensions)
- 在 MediaWiki 1.34.2 中,编辑
/includes/libs/mime/mime.types 并将 application/sla stl 修改为 application/sla stl oft。 (据我所知,1.35+这个目录改了)
就是这样!在不降低和修改安全性的情况下,我现在可以上传.oft 文件。
希望这可以帮助其他人解决这个问题。