anekdotes/manager

Provides an easier way to upload images with configurations

1.2.0 2017-04-06 20:12 UTC

README

Latest Stable Version Build Status codecov.io StyleCI License Total Downloads

A library that provides an easy way to upload files to the server simply by using configurations.

Installation

Install via composer into your project:

composer require anekdotes/manager

Usage

Use the class where ever you need it:

use Anekdotes\Manager\Manager;

See configuration section below for more information

With Laravel:

$manager = new Manager(array);
$manager->manage(Input::file('nameOfInput'));

Without Laravel:

$manager = new Manager(array);
$manager->manage($_FILES['nameOfInput']);

Catch errors/exceptions:

try {
    $manager = new Manager(array);
    $manager->manage($_FILES['nameOfInput']);
} catch (\Exception $e) {
    //do something
}

Configurations

Instantiation

You can pass a config array to the Manager's constructor.

    new Manager(array());

Available properties:

prefix : type string. Path's prefix to upload file (default: /public)

    'prefix' => '/public',

path : type string. Path to upload file (default: /uploads)

    'path' => 'uploads/',

exts : type array. Array of all supported file extensions (default: jpg, jpeg, png)

    'exts' => array('jpeg', 'jpg', 'png),

weight : type integer. Maximum file size in bytes (default: 3 mbs)

    'weight' => 3000000,

size : type array. Array containing as many sizes as needed (default: null)

    'size' => array(
    ),

Put together:

    $manager = new Manager(array(
        'prefix' => '/public',
        'path' => 'uploads/',
        'exts' => array('jpeg', 'jpg', 'png),
        'weight' => 3000000
    ));

Manage method's callback

You may pass a closure to the manage method to execute special code before uploading file such as creating an entry in the database or simply changing name.

    $manager->manage($_FILES['nameOfInput'], function($fi){
        //do something fancy
        return "potato.jpg";
    });

With the above example and default configurations, the new file will be located at /public/uploads as potato.jpg.