0

在我的私人 wiki 上,我启用了 Microsoft Outlook 2016 电子邮件模板 (.oft) 的上传,使用$wgFileExtensions. 但是在上传一个经常文件时,我遇到了错误File extension ".oft" does not match the detected MIME type of the file (application/sla)

有没有办法解决或克服这个问题?或者可能是一种仅跳过 MIME 检查的方法?如果是这样,你能帮我提供必要的代码吗?

我还希望在单击文件链接时运行 Outlook。但这不像修复错误那样导入...感谢您的帮助。

4

2 回答 2

1

有一种快速且更安全的方法。

最简单的选择是允许上传 MIME 类型与扩展名不匹配的内容。您可以通过在 LocalSettings.php 中添加以下内容来做到这一点(确保没有冲突的语句在另一行:

$wgStrictFileExtensions = "false";

如 Mediawiki 文档中所述,禁用$wgStrictFileExtensions是一个严重的安全风险,因此只有在您信任所有具有上传权限的用户时才这样做。它会给用户一个关于文件类型的警告,但无论如何都要上传文件。要完全不检查 MediaWiki,请使用以下命令彻底禁用$wgVerifyMimeType

$wgVerifyMimeType= "false";

更合适的方法是让 MediaWiki 知道 'application/sla' 对于 .oft 文件是可以的。默认的 MIME 类型数据库要求具有该扩展名的文件是 ODF 公式模板。您可以通过为 MediaWiki 提供您自己的 MIME 类型定义文件来更改它。在 Linux 中,您可能有 - 例如在 Debian 中,它是 /etc/mime.types。您可以添加该行

application/sla                oft

并确保 LocalSettings.php 已将$wgMimeTypeFile设置为链接到该文件。在 Debian 示例中:

$wgMimeTypeFile = "/etc/mime.types";
于 2020-09-01T15:33:36.740 回答
0

进一步阅读后,我终于找到了一个非hacky的上传解决方案.oft

  1. 如果尚未完成,请将.oft文件添加到支持的扩展名列表 ( $wgFileExtensions)
  2. 在 MediaWiki 1.34.2 中,编辑/includes/libs/mime/mime.types并修改application/sla stlapplication/sla stl oft. (据我所知,这个目录改成1.35+)

而已!在不降低和修改安全性的情况下,我现在可以上传.oft文件。

希望这可以帮助其他为此苦苦挣扎的人。

于 2020-09-09T05:40:30.220 回答