Cloudinary is a powerful cloud-based media management platform that allows you to upload, store, manage, manipulate, and deliver images and videos for your websites and apps. In this guide, I’ll walk you through the process of integrating Cloudinary with your PHP application.
First, you’ll need to install the official Cloudinary PHP SDK using Composer.
composer require cloudinary/cloudinary_php This will install the Cloudinary PHP SDK and all its dependencies in your project’s vendor directory.
After installing the SDK, you need to configure it with your Cloudinary account credentials.
Important: Keep your API secret secure and never expose it in client-side code.
cloudinary_config.php) in your project:<?php
require 'vendor/autoload.php';
use Cloudinary\Configuration\Configuration;
use Cloudinary\Api\Upload\UploadApi;
// Configure Cloudinary
Configuration::instance([
'cloud' => [
'cloud_name' => 'your_cloud_name',
'api_key' => 'your_api_key',
'api_secret' => 'your_api_secret'
],
'url' => [
'secure' => true
]
]); Replace 'your_cloud_name', 'your_api_key', and 'your_api_secret' with your actual Cloudinary credentials.
Now, let’s create a simple HTML form to upload images to Cloudinary.
upload_form.php:<!DOCTYPE html>
<html>
<head>
<title>Cloudinary PHP Upload</title>
</head>
<body>
<h1>Upload Image to Cloudinary</h1>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="image" accept="image/*" required>
<button type="submit">Upload</button>
</form>
</body>
</html> Next, create the PHP script that will handle the file upload to Cloudinary.
upload.php:<?php
require 'cloudinary_config.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['image'])) {
try {
// Get the temporary file path
$filePath = $_FILES['image']['tmp_name'];
// Upload the image to Cloudinary
$upload = (new UploadApi())->upload($filePath, [
'folder' => 'php_uploads/',
'public_id' => 'img_' . time(),
'overwrite' => true,
'resource_type' => 'image'
]);
// Display the uploaded image
echo "<h1>Upload Successful!</h1>";
echo "<p>Public ID: " . htmlspecialchars($upload['public_id']) . "</p>";
echo "<p>Secure URL: " . htmlspecialchars($upload['secure_url']) . "</p>";
echo "<img src='" . htmlspecialchars($upload['secure_url']) . "' width='500'>";
} catch (Exception $e) {
echo "<h1>Upload Failed</h1>";
echo "<p>" . htmlspecialchars($e->getMessage()) . "</p>";
}
} else {
header('Location: upload_form.php');
exit;
} php -S localhost:8000 http://localhost:8000/upload_form.phpCloudinary allows you to apply transformations to your images on the fly. Here’s how to generate a transformed image URL:
$transformedUrl = cloudinary_url($upload['public_id'], [
'width' => 300,
'height' => 200,
'crop' => 'fill',
'effect' => 'sepia',
'quality' => 'auto'
]);
echo "<img src='" . htmlspecialchars($transformedUrl) . "'>"; To delete an uploaded image:
<?php
require 'cloudinary_config.php';
$publicId = 'php_uploads/img_1234567890'; // Replace with your actual public ID
try {
$result = (new UploadApi())->destroy($publicId);
echo "Image deleted successfully: " . print_r($result, true);
} catch (Exception $e) {
echo "Error deleting image: " . $e->getMessage();
} To list all uploaded images in a specific folder:
<?php
require 'cloudinary_config.php';
try {
$resources = (new AdminApi())->assets([
'type' => 'upload',
'prefix' => 'php_uploads/',
'max_results' => 10
]);
echo "<h1>Uploaded Images</h1>";
foreach ($resources['resources'] as $resource) {
echo "<img src='" . htmlspecialchars($resource['secure_url']) . "' width='200'><br>";
echo "Public ID: " . htmlspecialchars($resource['public_id']) . "<br><br>";
}
} catch (Exception $e) {
echo "Error listing resources: " . $e->getMessage();
} You’ve now successfully integrated Cloudinary with your PHP application! This gives you powerful media management capabilities including:
From here, you can explore more advanced features like:
Remember to check the official Cloudinary PHP SDK documentation for more detailed information and advanced usage.
Latest tech news and coding tips.
1. What Is the Golden Ratio? The Golden Ratio, represented by the Greek letter φ (phi), is…
In CSS, combinators define relationships between selectors. Instead of selecting elements individually, combinators allow you to target elements based…
Below is a comprehensive, beginner-friendly, yet deeply detailed guide to Boolean Algebra, complete with definitions, laws,…
Debugging your own code is hard enough — debugging someone else’s code is a whole…
Git is a free, open-source distributed version control system created by Linus Torvalds.It helps developers: Learn how to…
Bubble Sort is one of the simplest sorting algorithms in computer science. Although it’s not…