csv - 如何在 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);
解决方案
这是 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 );
推荐阅读
- java - 在java中创建字符串的最佳方法是什么
- c# - 剪切堆栈跟踪字符串的最后一个字符
- angular - 具有自定义元素主机的 Angular 和 Bootstrap 输入组
- android - firebase jobdispatcher 没有安排我的工作
- websocket - Grizzly 2.4.4 关闭的 WebSockets 内存泄漏
- php - 表格中的值没有被添加到数据库中
- java - 是否可以在没有 RESTEasy 服务器的情况下使用带有 JSON 反序列化的 Quarkus REST 客户端?
- html - 如何移动我的博客内容正确对齐
- node.js - 有没有办法在谷歌助手上同时说话和播放音频文件
- go - 如何在 CircleCI Go 图像中使用 Terraform