问题描述
「在这里插入搜索引擎」 对于这一点来说是相当无用的 – 我已经看过 wp-includes/functions.php
,wp-admin/includes/file.php
等,但没有找到我所获得的行为的原因。
我正在运行多站点,当我上传.doc 或.pdf 时,我没有问题。当我上传一个.ppt – 不管实际的文件名或 mimetype(即一个.ppt 重命名为.txt,一个.txt 重命名为.ppt) – 我被告知 「对不起,此文件类型是不允许为安全原因」 还有一点其他的解释。
我需要修改 mimes 表,添加一个覆盖 (如果是这样,这是什么语法),还是在我的 Apache conf 中?我已经做了一些有趣的搞笑,尝试在几个地方锁定东西,可能阻止.pot 文件。
最佳解决方案
在多站点网络管理设置中挖掘时发现它:有一个名为 「上传文件类型」 的设置 (在数据库中是 meta_key
= wp_sitemeta
表中的”upload_filetypes”),其中包含允许的文件类型列表。将”ppt” 添加到列表中可以上传。
次佳解决方案
WordPress 似乎没有任何地方可以更改这些设置,而不是通过在数据库中执行此操作。但是你试过使用这个代码吗?
<?php
add_filter('upload_mimes', 'custom_upload_mimes');
function custom_upload_mimes ( $existing_mimes = array() ) {
// add your extension to the array
$existing_mimes['ppt'] = 'application/vnd.ms-powerpoint';
// or: $existing_mimes['ppt|pot|pps'] = 'application/vnd.ms-powerpoint';
// to add multiple extensions for the same mime type
// add as many as you like
// removing existing file types
unset( $existing_mimes['exe'] );
// add as many as you like
// and return the new full result
return $existing_mimes;
}
?>
在您的主题功能文件中使用该代码。过滤器 upload_mimes
显然允许您设置其他允许的上传扩展,并且还可以正确设置扩展名 mime 类型以用于 WP 。加上这样做的好处是它的升级安全。
如果您需要一个 mime 类型的列表:http://www.w3schools.com/media/media_mimeref.asp
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。