PHPackages                             aurawindsurfing/cloudder - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. aurawindsurfing/cloudder

ActiveLibrary[File &amp; Storage](/categories/file-storage)

aurawindsurfing/cloudder
========================

Cloudinary API wrapper for Laravel

0.8.0(4y ago)06MITPHPPHP &gt;=5.3.0

Since Apr 6Pushed 4y agoCompare

[ Source](https://github.com/aurawindsurfing/cloudder)[ Packagist](https://packagist.org/packages/aurawindsurfing/cloudder)[ Docs](https://github.com/aurawindsurfing/cloudder)[ RSS](/packages/aurawindsurfing-cloudder/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (4)Versions (26)Used By (0)

Cloudder - Cloudinary wrapper for Laravel 5 / Lumen
===================================================

[](#cloudder---cloudinary-wrapper-for-laravel-5--lumen)

#### This project is not actively maintained. I might be slow to answer, as you can tell by looking at the issues. I have moved to some new projects, not in the PHP ecosystem. You can always reach out to me through my email.

[](#this-project-is-not-actively-maintained-i-might-be-slow-to-answer-as-you-can-tell-by-looking-at-the-issues-i-have-moved-to-some-new-projects-not-in-the-php-ecosystem-you-can-always-reach-out-to-me-through-my-email)

#### If you fork it on publish it as your own, it might be nice to credit the original author at .

[](#if-you-fork-it-on-publish-it-as-your-own-it-might-be-nice-to-credit-the-original-author-at-httpsgithubcomteeplusslaravel4-cloudinary)

[![Build Status](https://camo.githubusercontent.com/a8e14808ef9697d6b5a0e3f218a3ab11c56777ff5e9b203951c87dc30587945e/687474703a2f2f696d672e736869656c64732e696f2f7472617669732f6a726d326b362f636c6f75646465722f6d61737465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/jrm2k6/cloudder)[![License](https://camo.githubusercontent.com/30597ff9a350144f03bffdd9183e16468e0b3ca1193e1d08591d992622738d55/687474703a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](http://www.opensource.org/licenses/MIT)[![Latest Version](https://camo.githubusercontent.com/57cced9e7557cb4bff8af035428ad0b835caae41f33dba759094b08dc66995d5/687474703a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a726d326b362f636c6f75646465722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/jrm2k6/cloudder)[![Total Downloads](https://camo.githubusercontent.com/e8ddd4f5ea50d2d4f77daf10c5ec1ff477eeb57a641d61d4ad9f4ed4c7b30a0f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6a726d326b362f636c6f75646465722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/jrm2k6/cloudder)

> Initially forked from .

> **If there is any feature you would like feel free to open an issue or send me an email!**

Installation
------------

[](#installation)

`composer require jrm2k6/cloudder`

For people still using Laravel 4.2: `composer require jrm2k6/cloudder:0.1.*` and check the branch l4 for the installation instructions.

Configuration
-------------

[](#configuration)

Modify your `.env` file to add the following information from [Cloudinary](http://www.cloudinary.com)

### Required

[](#required)

```
CLOUDINARY_API_KEY=012345679890123
CLOUDINARY_API_SECRET=foobarfoobarfoob-arfoobarfo
CLOUDINARY_CLOUD_NAME=foobarcorp

```

### Optional

[](#optional)

```
CLOUDINARY_BASE_URL
CLOUDINARY_SECURE_URL
CLOUDINARY_API_BASE_URL

```

Laravel 5.5+ uses Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider. If you don't use auto-discovery follow the next steps:

Add the following in config/app.php:

```
'providers' => array(
  JD\Cloudder\CloudderServiceProvider::class,
);

'aliases' => array(
  'Cloudder' => JD\Cloudder\Facades\Cloudder::class,
);
```

Run `php artisan vendor:publish --provider="JD\Cloudder\CloudderServiceProvider"`

Usage
-----

[](#usage)

### upload()

[](#upload)

```
Cloudder::upload($filename, $publicId, array $options, array $tags);
```

with:

- `$filename`: path to the image you want to upload
- `$publicId`: the id you want your picture to have on Cloudinary, leave it null to have Cloudinary generate a random id.
- `$options`: options for your uploaded image, check the [Cloudinary documentation](http://cloudinary.com/documentation/php_image_upload#all_upload_options) to know more
- `$tags`: tags for your image

returns the `CloudinaryWrapper`.

### uploadVideo()

[](#uploadvideo)

```
Cloudder::uploadVideo($filename, $publicId, array $options, array $tags);
```

with:

- `$filename`: path to the video you want to upload
- `$publicId`: the id you want your video to have on Cloudinary, leave it null to have Cloudinary generate a random id.
- `$options`: options for your uploaded video, check the Cloudinary documentation to know more
- `$tags`: tags for your image

returns the `CloudinaryWrapper`.

### getPublicId()

[](#getpublicid)

```
Cloudder::getPublicId()
```

returns the `public id` of the last uploaded resource.

### getResult()

[](#getresult)

```
Cloudder::getResult()
```

returns the result of the last uploaded resource.

### show() + secureShow()

[](#show--secureshow)

```
Cloudder::show($publicId, array $options)
Cloudder::secureShow($publicId, array $options)
```

with:

- `$publicId`: public id of the resource to display
- `$options`: options for your uploaded resource, check the Cloudinary documentation to know more

returns the `url` of the picture on Cloudinary (https url if secureShow is used).

### showPrivateUrl()

[](#showprivateurl)

```
Cloudder::showPrivateUrl($publicId, $format, array $options)
```

with:

- `$publicId`: public id of the resource to display
- `$format`: format of the resource your want to display ('png', 'jpg'...)
- `$options`: options for your uploaded resource, check the Cloudinary documentation to know more

returns the `private url` of the picture on Cloudinary, expiring by default after an hour.

### rename()

[](#rename)

```
Cloudder::rename($publicId, $toPublicId, array $options)
```

with:

- `$publicId`: publicId of the resource to rename
- `$toPublicId`: new public id of the resource
- `$options`: options for your uploaded resource, check the cloudinary documentation to know more

renames the original picture with the `$toPublicId` id parameter.

### destroyImage() + delete()

[](#destroyimage--delete)

```
Cloudder::destroyImage($publicId, array $options)
Cloudder::delete($publicId, array $options)
```

with:

- `$publicId`: publicId of the resource to remove
- `$options`: options for the image to delete, check the cloudinary documentation to know more

removes image from Cloudinary.

### destroyImages()

[](#destroyimages)

```
Cloudder::destroyImages(array $publicIds, array $options)
```

with:

- `$publicIds`: array of ids, identifying the pictures to remove
- `$options`: options for the images to delete, check the cloudinary documentation to know more

removes images from Cloudinary.

### addTag()

[](#addtag)

```
Cloudder::addTag($tag, $publicIds, array $options)
```

with:

- `$tag`: tag to apply
- `$publicIds`: images to apply tag to
- `$options`: options for your uploaded resource, check the cloudinary documentation to know more

### removeTag()

[](#removetag)

```
Cloudder::removeTag($tag, $publicIds, array $options)
```

with:

- `$tag`: tag to remove
- `$publicIds`: images to remove tag from
- `$options`: options for your uploaded image, check the Cloudinary documentation to know more

### createArchive()

[](#createarchive)

```
Cloudder::createArchive(array $options, $archiveName, $mode)
```

with:

- `$options`: options for your archive, like name, tag/prefix/public ids to select images
- `$archiveName`: name you want to give to your archive
- `$mode`: 'create' or 'download' ('create' will create an archive and returns a JSON response with the properties of the archive, 'download' will return the zip file for download)

creates a zip file on Cloudinary.

### downloadArchiveUrl()

[](#downloadarchiveurl)

```
Cloudder::downloadArchiveUrl(array $options, $archiveName)
```

with:

- `$options`: options for your archive, like name, tag/prefix/public ids to select images
- `$archiveName`: name you want to give to your archive

returns a `download url` for the newly created archive on Cloudinary.

Running tests
-------------

[](#running-tests)

`phpunit`

Example
-------

[](#example)

You can find a working example in the repo [cloudder-l5-example](https://github.com/jrm2k6/cloudder-l5-sample-project)

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 78.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~118 days

Recently: every ~343 days

Total

22

Last Release

1561d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/128b0c4f5bfbbb6c5c50211b542085dfa308f134243f001e3f726a8ed7f72338?d=identicon)[aurawindsurfing](/maintainers/aurawindsurfing)

---

Top Contributors

[![jrm2k6](https://avatars.githubusercontent.com/u/1088099?v=4)](https://github.com/jrm2k6 "jrm2k6 (58 commits)")[![rogervila](https://avatars.githubusercontent.com/u/6053012?v=4)](https://github.com/rogervila "rogervila (5 commits)")[![clemblanco](https://avatars.githubusercontent.com/u/668419?v=4)](https://github.com/clemblanco "clemblanco (2 commits)")[![aurawindsurfing](https://avatars.githubusercontent.com/u/14302496?v=4)](https://github.com/aurawindsurfing "aurawindsurfing (2 commits)")[![bjohanning](https://avatars.githubusercontent.com/u/38767939?v=4)](https://github.com/bjohanning "bjohanning (2 commits)")[![markeilander](https://avatars.githubusercontent.com/u/2378970?v=4)](https://github.com/markeilander "markeilander (1 commits)")[![mikeaag](https://avatars.githubusercontent.com/u/1278785?v=4)](https://github.com/mikeaag "mikeaag (1 commits)")[![osbre](https://avatars.githubusercontent.com/u/23292709?v=4)](https://github.com/osbre "osbre (1 commits)")[![pixel-penguin](https://avatars.githubusercontent.com/u/8964456?v=4)](https://github.com/pixel-penguin "pixel-penguin (1 commits)")[![joseraul](https://avatars.githubusercontent.com/u/676681?v=4)](https://github.com/joseraul "joseraul (1 commits)")

---

Tags

apilaravelimageuploadcloudinarylaravel4

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/aurawindsurfing-cloudder/health.svg)

```
[![Health](https://phpackages.com/badges/aurawindsurfing-cloudder/health.svg)](https://phpackages.com/packages/aurawindsurfing-cloudder)
```

###  Alternatives

[teepluss/cloudinary

Cloudinary API wrapper for Laravel 4

1810.5k](/packages/teepluss-cloudinary)[sopamo/laravel-filepond

Laravel backend module for filepond uploads

215272.2k3](/packages/sopamo-laravel-filepond)[sahusoftcom/eloquent-image-mutator

One solution for image uploads.

12016.3k](/packages/sahusoftcom-eloquent-image-mutator)[codebar-ag/laravel-flysystem-cloudinary

Cloudinary Flysystem v1 integration with Laravel

1224.9k2](/packages/codebar-ag-laravel-flysystem-cloudinary)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
