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 and speedily upload multiple images and videos in PHP files.

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


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 image-related tasks:

  • Uploads
  • Administration and creation of sprites
  • Embeddings
  • Generation of URLs for transformations

To get started, follow the steps below.

1. Sign up for a Cloudinary account.

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

Dashboard 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. Afterwards, 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"
  }
}

Now 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 this snippet:

    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, you no longer need to store files on your host server. 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).


Want to Learn More About File Uploads?

Recent Blog Posts

Transitioning JPEG-Based to JPEG XL-Based Images for Web Platforms

When the JPEG codec was being developed in the late 1980s, no standardized, lossy image-compression formats existed. JPEG became ready at exactly the right time in 1992, when the World Wide Web and digital cameras were about to become a thing. The introduction of HTML’s <img> tag in 1995 ensured the recognition of JPEG as the web format—at least for photographs. During the 1990s, digital cameras replaced analog ones and, given the limited memory capacities of that era, JPEG became the standard format for photography, especially for consumer-grade cameras.

Read more

Amplify Your Jamstack With Video

By Alex Patterson
Amplify Your Jamstack With Cloudinary Video

As defined by Amazon Web Services (AWS), Amplify is a set of products and tools with which mobile and front-end web developers can build and deploy AWS-powered, secure, and scalable full-stack apps. Also, you can efficiently configure their back ends, connect them to your app with just a few lines of code, and deploy static web apps in only three steps. Historically, because of their performance issues, managing images and videos is a daunting challenge for developers. Even though you can easily load media to an S3 bucket with AWS Amplify, transforming, compressing, and responsively delivering them is labor intensive and time consuming.

Read more
Cloudinary Helps Move James Hardie’s Experience Online

While COVID has affected most businesses, it has been particularly hard on those that sell products for the physical ‘brick and mortar’ world. One company that literally fits that bill is our Australian customer James Hardie, the largest global manufacturer of fibre cement products used in both domestic and commercial construction. These are materials that its buyers ideally want to see up close, in detail. When customers have questions, they expect personal service.

Read more
How to Build an Enhanced Gravatar Service, Part 2

Part 1 of this post defines the capabilities of an enhanced Gravatar service, which I named Clavatar, and describes the following initial steps for building it:

This post, part 2 of the series, explains how to make Clavatar work like Gravatar and to develop Clavatar’s capabilities of enabling requests for various versions of the images related to user accounts.

Read more