使用WooCommerce API上传.avif产品图片时遭遇woocommerce_product_image_upload_error错误
解决WooCommerce API上传AVIF图片报错"woocommerce_product_image_upload_error"的方案
- 补全WooCommerce API的文件类型白名单
WooCommerce默认未将AVIF纳入API允许的产品图片格式列表,需手动添加。将以下代码添加到主题的functions.php文件或自定义插件中:
add_filter( 'woocommerce_rest_upload_image_mime_types', 'allow_avif_images_rest_api' ); function allow_avif_images_rest_api( $mime_types ) { $mime_types['avif'] = 'image/avif'; return $mime_types; }
配置服务器端AVIF MIME类型
即便前端能显示AVIF,服务器可能未正确识别其MIME类型,需针对性配置:- Apache服务器:在网站根目录的
.htaccess文件中添加AddType image/avif .avif - Nginx服务器:在
nginx.conf或站点配置文件中添加types { image/avif avif; }
配置完成后重启服务器生效。
- Apache服务器:在网站根目录的
规范API请求参数
通过Make、Google Sheets等工具调用API时,确保:- 请求的
Content-Type设置为multipart/form-data - 文件上传字段名称为
file,且明确指定MIME类型为image/avif,避免工具默认识别为未知类型
- 请求的
升级WooCommerce及WordPress版本
旧版本WooCommerce对AVIF格式支持可能存在缺陷,建议升级到最新稳定版,同时同步更新WordPress核心,排除版本兼容问题。排查插件冲突
临时禁用所有非必要插件,仅保留WooCommerce,再次尝试API上传AVIF图片。若上传成功,再逐个启用插件,定位导致冲突的插件(多为图片优化类插件拦截了API上传请求)。检查文件权限与大小限制
确保wp-content/uploads目录权限为755,同时在服务器的php.ini文件中确认upload_max_filesize和post_max_size参数值足够大,避免因文件大小超限导致上传失败。
内容的提问来源于stack exchange,提问作者Jean-Baptiste Delame
相关产品推荐
相关产品推荐

