clivern/file_uploader

PHP File Uploader Package

v1.0.2 2016-06-18 20:43 UTC

This package is auto-updated.

Last update: 2024-03-29 20:38:47 UTC


README

PHP File Uploader Package

Current version: [v1.0.2]

Build Status Latest Stable Version License

Installation

Via Composer

$ composer require clivern/file_uploader

Usage

First configure uploader class.

include_once dirname(__FILE__) . '/vendor/autoload.php';

$uploader = new \Clivern\FileUploader\Uploader([
    'dir_path' => dirname(__FILE__), # Path to storage directory
    'dir_name' => 'storage', # Storage directory name
    'year_storage_based' => true, # Whether to arrange uploaded file in year directories
    'month_storage_based' => true, # Whether to arrange uploaded file in months under year directories
]);

Then upload and validate file

$result = $uploader->uploadFile('test', [ # test is the file input name

    # validate allowed extensions
    # Possible values are:
    #   false => to stop extension validation.
    #   array of allowed extensions.
    'supported_extensions' => ['txt'],

    # validate allowed types
    # Possible values are:
    #   false => to stop type validation.
    #   array of allowed types.
    'supported_types' => ['text/plain'],

    # Maximum upload size
    # Possible values are:
    #   false => to stop size validation.
    #   1KB or 2KB or 8KB and so on.
    #   2MB or 3MB or 8MB and so on.
    #   3GB or 4GB or 5GB and so on.
    #   4TP or 8TP or 10TP and so on.
    #   9PB or 8PB and so on.
    'max_size' => '2MB',
]);

Then check if file uploaded

if (!$result) {
    # Get Errors List
    $errors = $uploader->getErrors();
}else{
    # Get uploaded file info
    $file_info = $uploader->getFileInfo();
}

Explore this working example

<?php
include_once dirname(__FILE__) . '/vendor/autoload.php';

if( isset($_FILES['test']) ){

    $uploader = new \Clivern\FileUploader\Uploader([
        'dir_path' => dirname(__FILE__), # Path to storage directory
        'dir_name' => 'storage', # Storage directory name
        'year_storage_based' => true, # Whether to arrange uploaded file in year directories
        'month_storage_based' => true, # Whether to arrange uploaded file in months under year directories
    ]);

    $result = $uploader->uploadFile('test', [ # test is the file input name

        # validate allowed extensions
        # Possible values are:
        #   false => to stop extension validation.
        #   array of allowed extensions.
        'supported_extensions' => ['txt'],

        # validate allowed types
        # Possible values are:
        #   false => to stop type validation.
        #   array of allowed types.
        'supported_types' => ['text/plain'],

        # Maximum upload size
        # Possible values are:
        #   false => to stop size validation.
        #   1KB or 2KB or 8KB and so on.
        #   2MB or 3MB or 8MB and so on.
        #   3GB or 4GB or 5GB and so on.
        #   4TP or 8TP or 10TP and so on.
        #   9PB or 8PB and so on.
        'max_size' => '2MB',
    ]);

    echo '<pre>';
    if (!$result) {
        # Get Errors List
        $errors = $uploader->getErrors();
        var_dump($errors);
    }else{
        # Get uploaded file info
        $file_info = $uploader->getFileInfo();
        var_dump($file_info);
    }
    die();
}

?>

<form action="" method="POST" enctype="multipart/form-data">
    <input type="file" name="test" />
    <input type="submit"/>
</form>

Change log

Version 1.0.2
> Initial Release

Testing

$ composer test

Contributing

Please see CONTRIBUTING and CONDUCT for details.

Security

If you discover any security related issues, please email hello@clivern.com instead of using the issue tracker.

License

The MIT License (MIT). Please see License File for more information.