当你想在Wordpress中上传 svg、webp 等格式的文件时,系统会提示如下的错误:“抱歉,由于安全原因,这个文件类型不受支持” 。这是因为 WordPress 文件的MIME 类型(也称为“多用途互联网邮件扩展类型”)被限制上传。
MIME 类型解释
MIME 代表多用途互联网邮件扩展类型。浏览器和其他互联网设备使用 MIME 类型来确定与页面关联的内容类型。
例如,如果页面上有一个 .png 文件和一个 .jpeg 文件,浏览器将通过它们的 MIME 类型(而不是它们的文件扩展名),判断这两个文件为图像文件,而不是视频或其他文件类型。
默认情况下,WordPress 在 wp-includes/functions.php 中存储着已注册 MIME 类型的列表。但是,并非所有识别的 MIME 类型都允许在 WordPress 管理仪表盘中上传。
默认支持的文件类型
图片 | .jpg .jpeg .png .gif .ico |
文档 | .pdf(便携式文档格式;Adobe Acrobat) .doc、.docx(Microsoft Word 文档) .ppt、.pptx、.pps、.ppsx(Microsoft PowerPoint 演示文稿) .odt(OpenDocument 文本文档) .xls、.xlsx(Microsoft Excel 文档) .psd(Adobe Photoshop 文档) |
音频 | .mp3 .m4a .ogg .wav |
视频 | .mp4、.m4v (MPEG-4) .mov (QuickTime) .wmv (Windows Media Video) .avi .mpg .ogv (Ogg) .3gp (3GPP) .3g2 (3GPP2) |
要上传上面未列出的文件类型,有几种方法可以绕过这些限制。
使用插件授权上传其他 MIME 类型
可以安装 WP Extra File Types 插件。设置非常简单,只需选中要允许的文件类型即可。
通过 functions.php 授权上传其他MIME类型
还可以更改当前主题的 functions.php 文件,添加以下代码来允许其他文件类型上传:
add_filter('upload_mimes', 'tbi_upload_mimes');
function tbi_upload_mimes($mimes = array()) {
$mimes['svg'] = 'image/svg+xml';
$mimes['ico'] = 'image/x-icon';
$mimes['webp'] = 'image/webp';
return $mimes;
}
通过 wp-config.php 解除文件上传格式限制
通过在 wp-config.php 文件中添加以下代码,解除文件上传格式限制:
define('ALLOW_UNFILTERED_UPLOADS', true);
牛期网提醒大家注意,这行代码会允许管理员用户上传所有文件类型。建议采用其他方式来设定上传文件格式。
配置多站点上传设置
如果你的 WordPress 网站开启了多站点模式,可以直接从多站点设置中编辑 MIME 类型:
第 1 步:从 WordPress 管理区域,导航到网络管理>设置>网络设置。
第 2 步:向下滚动到上传设置,并在上传文件类型字段中添加或删除文件类型。
作者:牛奇网,本站文章均为辛苦原创,在此严正声明,本站内容严禁采集转载,面斥不雅请好自为之,本文网址:https://www.niuqi360.com/wordpress/fix-wordpress-file-type-is-not-permitted/