Cakephp 3 图片通过 API 上传到 Cloudinary

Cakephp 3 Image Upload to Cloudinary via API

我正要将图像上传到 cloudinary - 图像 CDN 外观 cloudinary.com,它支持所有语言和框架,包括 Cakephp 3,但对于 cakephp 3,我们没有包含在他们的站点中的步骤。谁能告诉我轻松上传图片的步骤?

根据他们的网站,我提供了上传程序。

基本文档:

http://cloudinary.com/documentation/php_integration#getting_started_guide

第 1 步: 安装

{
  "require": {
    "cloudinary/cloudinary_php": "dev-master"
  }
}

将以上内容添加到项目文件夹中的 composer.json。

您可以使用 composer 更新它并获取依赖项。 运行 导航到您的项目文件夹后,composer 中的以下内容。

php composer.phar update

第 2 步: 在 Cake PHP.

中安装

打开您的 AppController 并在 initialize 函数中添加以下内容

它看起来像下面这样:

public function initialize() {
        parent::initialize();
        $this->loadComponent('Flash');

        \Cloudinary::config(array( 
        "cloud_name" => "sample", 
        "api_key" => "874837483274837", 
        "api_secret" => "a676b67565c6767a6767d6767f676fe1" 
       ));

}

在上面你可以找到cloudinary配置,替换成你自己的凭据。

要获取凭据,请按照下面的 link 并登录,

https://cloudinary.com/users/login

第 3 步: 图片上传程序

<?php 

echo $this->Form->create('upload_form', ['enctype' => 'multipart/form-data']);
echo $this->Form->input('upload', ['type' => 'file']);
echo $this->Form->button('Change Image', ['class' => 'btn btn-primary']);
echo $this->Form->end(); 

?>

在你的视图文件中使用上面的代码。 (您可以根据需要修改)

在你的控制器中,你可以通过以下方式使用,

if (!empty($this->request->data['upload']['name'])) {
            $file = $this->request->data['upload']; //put the data into a var for easy use
            $cloudOptions = array("width" => 1200, "height" => 630, "crop" => "crop");
            $cloudinaryAPIReq = \Cloudinary\Uploader::upload($file["tmp_name"], $cloudOptions);
            $imageFileName = $cloudinaryAPIReq['url'];
        }

您可以将 $imagefilename 保存在您的数据库中,在这里保存并重新填充完整的 url。