Cloudinary Blog

Uploading PHP Files and Rich Media the Easy Way

Uploading PHP Files and Rich Media the Easy Way

Images and videos, called rich media as a whole, abound on the Internet. Many modern developer apps require that you manipulate and upload files to the server—a mundane, time-consuming, and error-prone chore. A saving grace is Cloudinary’s PHP SDK, with which you can easily upload PHP files fast.

Cloudinary is a media-management service through which you can upload, manipulate, and manage rich-media files. For uploads from your app, whether desktop or mobile, Cloudinary offers an API, which you can integrate in your app. This post steps you through the process of uploading PHP files.

Webinar
How to Optimize for Page Load Speed

File Uploads With Cloudinary

With Cloudinary’s upload API, you can transmit any kind of file for safe storage in the cloud, complete with secure backups and revision history. To use that API, all you need is Cloudinary’s open-source PHP library, which contains simple, easy-to-use helper methods for these tasks:

  • Image uploads
  • Image administration and sprite generation
  • Image embeddings
  • Generation of URLs for image transformation and manipulation

To get started, follow the steps below.

1. Sign up for a Cloudinary account.

Sign up for Cloudinary’s generous free-tier plan.

Web page with upload options
Cloudinary Dashboard: Your cloud name, API key, and API secret are the key values for interacting with Cloudinary’s capabilities.

2. Fetch the Cloudinary PHP library.

Fetch the PHP SDK library

Fetch the library with Composer. Alternatively, go to Cloudinary’s PHP repository on GitHub, copy all the required files and paste them in your app, and then reference them in the script with which to perform the upload, as follows:

Copy to clipboard
// importing the necessary Cloudinary files
require 'Cloudinary.php';
require 'Uploader.php';
require 'Helpers.php';
require 'Api.php';
.....

To manage your PHP library’s dependency with Composer, install Cloudinary's PHP library directly from the Packagist repository and update your composer.json file, as follows:

Copy to clipboard
{
  "require": {
    "cloudinary/cloudinary_php": "dev-master"
  }
}

Afterwards, install the dependencies, including Cloudinary's PHP package:

Copy to clipboard
php composer.phar install

For more details, see Cloudinary’s documentation on the PHP SDK.

3. Upload to Cloudinary.

You can upload images and other files to Cloudinary in PHP on a server that runs PHP 5.3 or later. Do the following:

First, set up the key values with the config method so that Cloudinary can verify that your account is valid:

Copy to clipboard
\Cloudinary::config(array(
    "cloud_name" => "my_cloud_name",
    "api_key" => "my_api_key",
    "api_secret" => "my_api_secret"
));

Note: For security, load those three values from an environment (.env) file. Alternatively, put them in a file called settings.php and include it in the script that performs the actual uploading.

Now upload your images and other files to Cloudinary’s cloud platform:

  • To upload a local file, e.g.,my_image.jpg, type:

    Copy to clipboard
    \Cloudinary\Uploader::upload("/home/my_image.jpg")

    The upload method then returns an associative array whose content is similar to the following:

    Copy to clipboard
    Array
    (
    [public_id] => sample
    [version] => 1312461204
    [width] => 864
    [height] => 576
    [format] => jpg
    [bytes] => 120253
    [url] => https://res.cloudinary.com/demo/image/upload/v1371281596/sample.jpg
    [secure_url] => https://res.cloudinary.com/demo/image/upload/v1371281596/sample.jpg
    )
  • To upload a file from a remote HTTP or HTTPS URL, type:

    Copy to clipboard
    \Cloudinary\Uploader::upload("https://www.example.com/image.jpg")
  • To upload a file from an S3 bucket, type:

    Copy to clipboard
    \Cloudinary\Uploader::upload('s3://my-bucket/my-path/my-file.jpg');

    Cloudinary assigns a public ID to each and every uploaded file for transformation and delivery later on.

    Here’s the syntax for uploading files with PHP to Cloudinary:

    Copy to clipboard
    public static function upload($file, $options = array())

    See these examples of what you can pass to the $options` argument:

  • A custom public ID:

    Copy to clipboard
    \Cloudinary\Uploader::upload('my_image.jpg', array("public_id" => "manutd_id"));
  • The name of the uploaded file:

    Copy to clipboard
    \Cloudinary\Uploader::upload('sample.jpg', array("use_filename" => TRUE));
  • An image, a video, or a RAW file:

    Copy to clipboard
    \Cloudinary\Uploader::upload("spreadsheet.xls", array("resource_type" => "auto"));

For details on all the upload options, see the related Cloudinary documentation.

Conclusion

Uploading PHP images files to Cloudinary is hassle free. Once you’ve completed that task, storing files on your host server will be a thing of the past. Do take advantage of dedicated cloud-storage services like Cloudinary, which also performs the invaluable task of serving files securely to web apps through content delivery networks (CDNs).


Further Reading on File Uploads

Recent Blog Posts

Automatic Video Creation for Social Media at Scale

With video becoming increasingly popular, especially across social media, it’s as important as ever to ensure that your videos aren’t one of the hundreds that people just scroll on past. There’ve been a few successful techniques over the last couple of years to help with that, such as—

Read more
Uploading, Managing and Delivering PDFs With Cloudinary

The Portable Document Format (PDF) is a popular format developed by Adobe for delivering formatted text and images. A PDF file includes a complete description of all layout elements, including text, fonts, images and layers, ensuring that the file will look identical when opened on any device. The PDF format also has the big advantage of compressing high-quality files to a relatively small file size.

Read more
Share Your DAM Assets! New Visual Collections + Media Portal

If you've been working at home with young kids around during these “corona days”, you might have intuitively expected the last word of the title above to be "Toys" or "Candy"   😜. However, if you're a member of a creative team for a web site or software application, then you know how essential it is to have simple ways to share and collaborate on pre-production media assets.

Read more