|

WordPress 无法上传 SVG 图片怎么办?

更新于:

在 WordPress 后台上传 SVG 图片时,很多人会遇到这样的提示:

Sorry, this file type is not permitted for security reasons.

中文环境里通常会显示为:

抱歉,出于安全原因,不允许上传此文件类型。

WordPress 上传 SVG 时提示文件类型不受支持

出现这个问题不是网站坏了,而是 WordPress 默认禁止上传 SVG 文件。

原因很简单:SVG 不是普通图片,它本质上是一种 XML 文件,里面可能包含脚本代码。如果不做安全处理就允许上传,可能带来 XSS 等安全风险。所以 WordPress 默认会拦截 SVG 上传。

解决方法一:使用 Safe SVG 插件

最推荐的方式是安装 Safe SVG 插件。

WordPress 使用 Safe SVG 插件开启 SVG 上传

安装并启用插件后,WordPress 就可以上传 SVG 图片了。相比直接改代码,插件的好处是:它不仅允许上传 SVG,还会对 SVG 文件做安全清理,更适合普通网站和客户网站使用。

解决方法二:添加代码允许 SVG 上传

如果你熟悉代码,也可以把下面代码添加到主题的 functions.php 文件,或者放进自定义插件里:

function allow_svg_upload($mimes) {
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
}
add_filter('upload_mimes', 'allow_svg_upload');
WordPress 通过 upload_mimes 代码允许上传 SVG 文件

不过要注意:这段代码只解决“允许上传”的问题,并不会自动清理 SVG 文件里的潜在风险。如果网站有多个用户,或者允许别人上传文件,还是建议用插件方案。

不建议直接关闭上传限制

有些教程会建议开启 ALLOW_UNFILTERED_UPLOADS,但这个做法风险比较高,因为它会放宽更多文件类型限制,不只是 SVG。

一般网站不建议这么做。

总结

WordPress 无法上传 SVG 图片,主要是因为系统默认安全策略限制。
如果只是自己维护的网站,可以用代码开启;如果是正式站点、客户网站或多人协作网站,更推荐使用 Safe SVG 插件,既方便,也更安全。

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注