如何在 MediaWiki 上跳过 .OFT 文件扩展名的 MIME 类型检查
How to skip MIME type check for .OFT file extensions on MediaWiki
在我的私人 wiki 上,我启用了使用 $wgFileExtensions
上传 Microsoft Outlook 2016 电子邮件模板 (.oft)。但是在上传经常文件时,我遇到了错误 File extension ".oft" does not match the detected MIME type of the file (application/sla)
.
有没有办法解决或克服这个问题?或者也许是一种只对经常文件跳过 MIME 检查的方法?如果是这样,您能帮我提供必要的代码吗?
我还希望在单击文件 link 时 Outlook 运行。但这并不像修复错误那样重要...感谢您的帮助。
有一个快速的方法和一个更安全的方法。
最简单的选择是允许上传 MIME 类型与扩展名不匹配的内容。您可以通过在 LocalSettings.php 中添加以下内容来做到这一点(确保另一行没有冲突的语句:
$wgStrictFileExtensions = "false";
通过以下方式禁用 $wgStrictFileExtensions is a serious security risk as stated in the Mediawiki documentation, so only do this if you trust all users with upload rights. It will give users a warning about the file type, but upload the file anyway. To not have MediaWiki check at all, outright disable $wgVerifyMimeType:
$wgVerifyMimeType= "false";
更合适的方法是让 MediaWiki 知道 'application/sla' 可以用于 .oft 文件。具有该扩展名的默认 MIME-type 数据库 expects 文件是 ODF 公式模板。
您可以通过向 MediaWiki 提供您自己的 MIME 类型定义文件来更改它。
在 Linux 中,您可能有 - 例如在 Debian 中,它是 /etc/mime.types。您可以添加行
application/sla oft
并确保 LocalSettings.php 已将 $wgMimeTypeFile 设置为该文件的 link。在 Debian 示例中:
$wgMimeTypeFile = "/etc/mime.types";
进一步阅读后,我终于找到了一个non-hacky上传的解决方案.oft
:
- 如果尚未完成,请将
.oft
个文件添加到支持的扩展列表 ($wgFileExtensions
)
- 在 MediaWiki 1.34.2 中,编辑
/includes/libs/mime/mime.types
并将 application/sla stl
修改为 application/sla stl oft
。 (据我所知,此目录已更改为 1.35+)
就是这样!在不降低和修改安全性的情况下,我现在可以上传 .oft
个文件。
希望这可以帮助其他为此苦苦挣扎的人。
在我的私人 wiki 上,我启用了使用 $wgFileExtensions
上传 Microsoft Outlook 2016 电子邮件模板 (.oft)。但是在上传经常文件时,我遇到了错误 File extension ".oft" does not match the detected MIME type of the file (application/sla)
.
有没有办法解决或克服这个问题?或者也许是一种只对经常文件跳过 MIME 检查的方法?如果是这样,您能帮我提供必要的代码吗?
我还希望在单击文件 link 时 Outlook 运行。但这并不像修复错误那样重要...感谢您的帮助。
有一个快速的方法和一个更安全的方法。
最简单的选择是允许上传 MIME 类型与扩展名不匹配的内容。您可以通过在 LocalSettings.php 中添加以下内容来做到这一点(确保另一行没有冲突的语句:
$wgStrictFileExtensions = "false";
通过以下方式禁用 $wgStrictFileExtensions is a serious security risk as stated in the Mediawiki documentation, so only do this if you trust all users with upload rights. It will give users a warning about the file type, but upload the file anyway. To not have MediaWiki check at all, outright disable $wgVerifyMimeType:
$wgVerifyMimeType= "false";
更合适的方法是让 MediaWiki 知道 'application/sla' 可以用于 .oft 文件。具有该扩展名的默认 MIME-type 数据库 expects 文件是 ODF 公式模板。 您可以通过向 MediaWiki 提供您自己的 MIME 类型定义文件来更改它。 在 Linux 中,您可能有 - 例如在 Debian 中,它是 /etc/mime.types。您可以添加行
application/sla oft
并确保 LocalSettings.php 已将 $wgMimeTypeFile 设置为该文件的 link。在 Debian 示例中:
$wgMimeTypeFile = "/etc/mime.types";
进一步阅读后,我终于找到了一个non-hacky上传的解决方案.oft
:
- 如果尚未完成,请将
.oft
个文件添加到支持的扩展列表 ($wgFileExtensions
) - 在 MediaWiki 1.34.2 中,编辑
/includes/libs/mime/mime.types
并将application/sla stl
修改为application/sla stl oft
。 (据我所知,此目录已更改为 1.35+)
就是这样!在不降低和修改安全性的情况下,我现在可以上传 .oft
个文件。
希望这可以帮助其他为此苦苦挣扎的人。