如何启用上传EXCEL文件?

时间:2018-02-15 作者:Gergely

我有一个老同学,他想把excel文件上传到我们的Wordpress页面。

基本上,Wordpress不允许这样做。

在上面

https://gist.github.com/robwent/e3bf00bafe7a00bc3d0c4dceabde4fca

我将以下内容放入函数中。结束前的php“包括”:

function my_custom_mime_types( $mimes ) {

    // New allowed mime types.
    $mimes[\'xls\'] = \'application/vnd.ms-excel\';

    return $mimes;
}
add_filter( \'upload_mimes\', \'my_custom_mime_types\', 9999 );
但在上传时。xls文件我收到一条错误消息,由于安全原因,这是不允许的(从我的母语重新翻译)。

这是一次正确的尝试吗?我怎样才能做到这一点?

3 个回复
SO网友:sandrodz

我认为合适的过滤器应该是mime_types 建立here.

function wpse294198_mime_types( $mimes ) {
    $mimes[\'xls|xlsx\'] = \'application/vnd.ms-excel\';
    return $mimes;
}
add_filter( \'mime_types\', \'wpse294198_mime_types\' );
可以使用命令行工具file (linux | macOS)查看mime类型,例如。file --mime-type -b somefile.xls

SO网友:Sayed Mohd Ali

我尝试了上述解决方案,但最终没有奏效

我通过wp config允许所有mime类型。php

define( \'ALLOW_UNFILTERED_UPLOADS\', true );
您可以在提交文件时创建自定义限制。使用$_FILES 数组,并在上载之前对文件的扩展名和类型进行限制。

SO网友:Sjeiti

这个upload_mimes 钩子是正确的,mime类型不是(不再是?)。

以下内容适用于WP 5.8.2

function my_upload_mimes( $mimes ) {
        return array_merge($mimes, array (
            \'xls\' => \'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\',
            \'xlsx\' => \'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\',
            \'csv\' => \'text/csv\'
        ));
}
add_filter( \'upload_mimes\', \'my_upload_mimes\' );

结束