PHP 显示来自 Cloudinary 的图像会触发 Uncaught...ConfigurationException

问题描述 投票:0回答:1

问候

我正在使用

PHP 8.1.2
Cloudinary

我对

Cloudinary
PHP
还是新手。

我有一个将图像上传到

Cloudinary
的脚本。它工作得很好。另一方面,我不知道如何显示存储在
Cloudinary
上的图像。我在网上找到的帮助很少。我不知道我需要包含/需要哪些
Cloudinary
文件/类。我做错事了。

如果有人可以向我指出一个好的操作教程或向我展示如何做到这一点,我将不胜感激。

# show-image.html

<?php
require_once('../vendor/autoload.php');

use Cloudinary\Cloudinary;

// image folder/name on cloudinary
$image_on_cloudinary = 'student_images/carter-ski-jump-big.jpg';

$cld_image = new Cloudinary();
$cld_image->imageTag($image_on_cloudinary);  // line 9 referenced in error

?>

我收到此错误:

[30-Jan-2024 21:30:45 UTC] PHP Fatal error:  Uncaught Cloudinary\Exception\ConfigurationException: 
Invalid configuration, please set up your environment in /home/sacnomad/livingmuaythai.com/vendor/cloudinary/cloudinary_php/src/Configuration/Configuration.php:293
Stack trace:
#0 /home/sacnomad/livingmuaythai.com/vendor/cloudinary/cloudinary_php/src/Cloudinary.php(59): Cloudinary\Configuration\Configuration->validate()
#1 /home/sacnomad/livingmuaythai.com/students/show-image.html(9): Cloudinary\Cloudinary->__construct()
#2 {main}
  thrown in /home/sacnomad/livingmuaythai.com/vendor/cloudinary/cloudinary_php/src/Configuration/Configuration.php on line 293

在我的图像上传脚本中,我进行了此设置,我也在我的显示图像页面中尝试过,减去

Cloudinary upload lines

<?php
require_once('../includes/cloudinary_creds.php');
require_once('../vendor/autoload.php');

$cc = new CloudinaryCreds();

use Cloudinary\Cloudinary;
use Cloudinary\Configuration\Configuration;
Configuration::instance( $cc->get_cloudinary_url() );

// Use the UploadApi class for uploading assets
use Cloudinary\Api\Upload\UploadApi;

$upload = new UploadApi();

$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';

if( isset($action) && $action=="Submit" ){
  if ( is_uploaded_file($_FILES['uploaded_file']['tmp_name']) ) {
    $tmp_name = $_FILES["uploaded_file"]["tmp_name"];
    $image_name = $_FILES["uploaded_file"]["name"];

    $image_array = $upload->upload($tmp_name, [
                                 'public_id' => $image_name,
                                 'use_filename' => TRUE,
                                 'folder' => 'student_images',
                                 'overwrite' => TRUE ] );

    print "<p>Public_ID: ".$image_array['public_id']."</p>";
  }
}
...

如上所述,这对于上传图像来说效果很好。没有错误。

cloudinary php-8.1
1个回答
0
投票

您至少需要将 Cloudname 传递到配置实例中,以便 image_tag 生成现有帐户的图像 url。例如:

   use Cloudinary\Configuration\Configuration;
   Configuration::instance( 
   [
     'cloud' => [
        'cloud_name' => '<cloud_name>'
      ]
   ]);

  //call the image
  $image_on_cloudinary = 'student_images/carter-ski-jump-big.jpg';

  $cld_image = new Cloudinary();
  $cld_image->imageTag($image_on_cloudinary);

上面应该生成图像 URL。

© www.soinside.com 2019 - 2024. All rights reserved.