You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress 5.8.1版本SVG无法上传 原有MIME配置代码失效原因咨询

WordPress 5.8.1版本SVG上传代码失效原因
  • 核心原因是WordPress 5.7及以上版本新增了上传文件真实性校验机制,你原有代码仅注册了SVG对应的MIME类型,没有适配新的校验规则。
  • 新增的校验环节会比对文件扩展名和文件实际内容对应的MIME类型,SVG本质是XML格式的文本文件,未做适配的情况下校验环节会将其识别为text/plain类型,和注册的image/svg+xml类型不匹配,因此会被系统拦截,导致上传失败。

你可以使用以下适配5.7+版本的完整代码实现SVG上传支持:

// 注册SVG的MIME类型
function cc_mime_types($mimes) {
  $mimes['svg'] = 'image/svg+xml';
  return $mimes;
}
add_filter('upload_mimes', 'cc_mime_types');

// 适配5.7+版本的SVG文件校验逻辑
function fix_svg_upload_validation($data, $file, $filename, $mimes) {
  $file_type = wp_check_filetype($filename, $mimes);
  if ($file_type['ext'] === 'svg' && $file_type['type'] === 'image/svg+xml') {
    $data['ext'] = 'svg';
    $data['type'] = 'image/svg+xml';
    $data['proper_filename'] = $data['proper_filename'] ?? $filename;
  }
  return $data;
}
add_filter('wp_check_filetype_and_ext', 'fix_svg_upload_validation', 10, 4);

提示:SVG文件存在XML注入、恶意代码嵌入等安全风险,开启上传权限后建议仅开放给可信的管理员用户,必要时可增加SVG内容安全清洗逻辑。

内容的提问来源于stack exchange,提问作者RU NE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:48:03