首页 > 解决方案 > 如何在 wordpress 4.9.9 以上上传 csv 文件

问题描述

最近的安全更改使我的 csv 上传无法正常工作,说该类型无效。我需要绕过此更改,但未能通过将 mime 类型添加到相关过滤器来做到这一点。

function my_myme_types($mime_types){
    $mime_types['csv'] = 'text/csv'; //Adding csv extension

    return $mime_types;
}

add_filter('upload_mimes', 'my_myme_types', 1, 1);

标签: csvupload

解决方案


这是 WordPress 4.9.9 和 5.0.1 核心中的错误——或安全“功能”,具体取决于您询问的对象。

快速修复——将其添加到 wp-config.php

define(‘ALLOW_UNFILTERED_UPLOADS’, true);

这将通过停止“新增强”的 WordPress 文件类型检查来打开潜在的安全风险,但由于 WP 4.9.8 或 5.0 的附带,风险不会更大。

如果 WordPress 修复了 CSV 错误,请记住将其设置为 false。

对于我的用户群, 您可以阅读更多详细信息并关注本文中的相关主题。

您也可以尝试将其添加到主题或插件代码中,但它从根本上改变了 mime 类型系统在 WordPress 中的工作方式。修复了该问题,但如果您保留此问题,您可能会遇到更长期的问题:

function fix_wp_csv_mime_bug( $data, $file, $filename, $mimes ) {
    $wp_filetype = wp_check_filetype( $filename, $mimes );
            $ext = $wp_filetype['ext'];
            $type = $wp_filetype['type'];
            $proper_filename = $data['proper_filename'];

            return compact( 'ext', 'type', 'proper_filename' );
}
add_filter( 'wp_check_filetype_and_ext', 'fix_wp_csv_mime_bug', 10, 4 );

推荐阅读