可以上传文档和pdf,但不能上传ppt-出于安全原因,不允许上传

时间:2011-05-03 作者:Andrew

“在这里插入搜索引擎”对于这一个来说是非常无用的-我已经看过了wp-includes/functions.php, wp-admin/includes/file.php 等等,但没有找到我这种行为的原因。

我正在运行多站点,当我上载时。文件或。pdf我没有问题。当我上传时。ppt-无论实际的文件名或mimetype(即,一个.ppt重命名为.txt,一个.txt重命名为.ppt)-我被告知“抱歉,出于安全原因,不允许使用此文件类型”,但没有其他解释。

我是否需要修改mimes表,添加一个覆盖(如果需要,那么它的语法是什么),或者它是我的Apache conf中的什么?我做了一些有趣的摆弄,试图把东西锁定在一些地方,可能是阻塞。pot文件。

2 个回复
最合适的回答,由SO网友:Andrew 整理而成

在多站点网络管理设置中挖掘时发现了它:有一个名为“上载文件类型”的设置(在数据库中,它是meta_key = 中的“upload\\u filetypes”wp_sitemeta 表),其中包含允许的文件类型列表。将“ppt”添加到列表中可以上载它们。

SO网友:Scott

WordPress似乎没有任何地方可以更改这些设置,除了您在DB中所做的之外。但是你试过使用这个代码吗?

<?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 显然,您可以设置其他允许的上载扩展,还可以正确设置在WP中使用的扩展mime类型。另外,这样做的好处是升级安全。

如果需要mime类型列表:http://www.w3schools.com/media/media_mimeref.asp

结束

相关推荐

有人想出了如何使用WordPress MultiSite与域映射和SSL吗?

我一直在寻找使用WordPress多站点和域映射的SSL解决方案。理想情况下,我想为每个域购买一个SSL证书(或者可能是一个通配符证书),任何人都有一个适合他们的解决方案。我担心我忽视了这个细节,现在必须拆分我的快乐MU家园,以确保这个域名的安全。