PHP中Cloudinary环境未配置错误排查求助
问题原因
你使用的Cloudinary PHP SDK v2.x版本,配置参数格式不符合要求——代码里把cloud_name、api_key、api_secret嵌套在了cloud数组下,但v2.x版本的SDK构造函数要求这些配置项直接放在顶层数组中,不需要嵌套层级。
修正后的代码
require 'vendor/autoload.php'; use Cloudinary\Cloudinary; // 正确配置:直接传入顶层配置项 $cloudinary = new Cloudinary( [ 'cloud_name' => 'XXXXXXX', 'api_key' => 'XXXXXXXXXX', 'api_secret' => 'XXXXXXXXXXXXXXXXX', ] ); // 无需单独实例化UploadApi,直接通过Cloudinary对象调用上传方法 $result = $cloudinary->uploadApi()->upload("images/signup-image.jpg", [ 'folder' => 'promptopolis', // 可选:指定Cloudinary中的文件夹 ]); print_r($result);
额外注意事项
- SDK v2.x推荐直接通过
$cloudinary->uploadApi()调用上传接口,无需手动创建UploadApi实例,避免配置传递的潜在问题。 - 确保
cloud_name、api_key、api_secret完全匹配Cloudinary控制台中的值,无多余空格或拼写错误。 - 验证本地图片路径
images/signup-image.jpg的正确性,确保脚本能读取到该文件。
你收到的错误信息:
Fatal error: Uncaught Cloudinary\Exception\ConfigurationException: Invalid configuration, please set up your environment in C:\xampp\htdocs\php\eindwerk\vendor\cloudinary\cloudinary_php\src\Configuration\Configuration.php:179
Stack trace:
#0 C:\xampp\htdocs\php\eindwerk\vendor\cloudinary\cloudinary_php\src\Configuration\Configuration.php(138): Cloudinary\Configuration\Configuration->import(Object(Cloudinary\Cloudinary))
#1 C:\xampp\htdocs\php\eindwerk\vendor\cloudinary\cloudinary_php\src\Configuration\Configuration.php(119): Cloudinary\Configuration\Configuration->init(Object(Cloudinary\Cloudinary), true)
#2 C:\xampp\htdocs\php\eindwerk\vendor\cloudinary\cloudinary_php\src\Api\ApiClient.php(88): Cloudinary\Configuration\Configuration->__construct(Object(Cloudinary\Cloudinary))
#3 C:\xampp\htdocs\php\eindwerk\vendor\cloudinary\cloudinary_php\src\Api\ApiClient.php(53): Cloudinary\Api\ApiClient->configuration(Object(Cloudinary\Cloudinary))
#4 C:\xampp\htdocs\php\eindwerk\vendor\cloudinary\cloudinary_php\src\Api\Upload\UploadApi.php(51): Cloudinary\Api\ApiClient->__construct(Object(Cloudinary\Cloudinary))
#5 C:\xampp\htdocs\php\eindwerk\test.php(17): Cloudinary\Api\Upload\UploadApi->__construct(Object(Cloudinary\Cloudinary))
#6 {main} thrown in C:\xampp\htdocs\php\eindwerk\vendor\cloudinary\cloudinary_php\src\Configuration\Configuration.php on line 179
内容的提问来源于stack exchange,提问作者Tibo Mertens

