尝试上载xls文件时出现以下错误。
抱歉,出于安全原因,不允许使用此文件类型。
已尝试插件wp extra文件类型,但没有选择xls文件类型的选项。
尝试了pro mime类型插件,Xls有一个允许的选项,我也这么做了,但仍然不起作用,并且出现了相同的错误。
还尝试在中添加以下代码function.php
function my_myme_types($mime_types){
// New allowed mime types.
$mime_types[\'xls\'] = \'application/vnd.ms-excel\';
return $mime_types;
}
add_filter(\'upload_mimes\', \'my_myme_types\', 1, 1);
但仍然显示相同的错误。
也尝试过
function wpse294198_mime_types( $mimes ) {
$mimes[\'xls|xlsx\'] = \'application/vnd.ms-excel\';
return $mimes;
}
add_filter( \'mime_types\', \'wpse294198_mime_types\' );
唯一可行的解决方案是wp config ALLOW UNFILTED UPLOADS(wp配置允许未经筛选的上载)。但如果我们考虑到安全原因,这是有风险的。我只想允许xls文件,而不是像Php、js extra这样的任何其他文件格式。
define(‘ALLOW_UNFILTERED_UPLOADS’, true)
我面临的问题是,如果有上传选项,现在任何人都可以从任何地方上传任何类型的文件。所以我认为这不是一件好事。我需要一个更好的办法来解决我的问题。
我正在使用WordPress v5.2,有人建议我尝试下面的解决方案,但也没有成功。
function wpse323750_multi_mimes( $check, $file, $filename, $mimes ) {
if ( empty( $check[\'ext\'] ) && empty( $check[\'type\'] ) ) {
$multi_mimes = [ [ \'xls\' => \'application/excel\' ], [ \'xls\' => \'application/vnd.ms-excel\' ], [\'xls\' => \'application/x-excel\' ], [\'xls\' => \'application/x-msexcel\'] ];
foreach( $multi_mimes as $mime ) {
remove_filter( \'wp_check_filetype_and_ext\', \'wpse323750_multi_mimes\', 99, 4 );
$check = wp_check_filetype_and_ext( $file, $filename, $mime );
add_filter( \'wp_check_filetype_and_ext\', \'wpse323750_multi_mimes\', 99, 4 );
if ( ! empty( $check[\'ext\'] ) || ! empty( $check[\'type\'] ) ) {
return $check;
}
}
}
return $check;
}
add_filter( \'wp_check_filetype_and_ext\', \'wpse323750_multi_mimes\', 99, 4 );