Skip to content

Simple upload system in PHP, compatible with AWS S3, Dropbox, Azure and others.

License

Notifications You must be signed in to change notification settings

whera/SimpleUpload

Repository files navigation

SimpleUpload

Simple upload system in PHP, compatible with AWS S3, Dropbox, Azure and others.

Travis Code Coverage Scrutinizer Code Quality Github All Releases Packagist license

Component responsible for simplifying file upload. With it it is possible to perform local uploads and services such as: Dropbox, AWS S3, Azure, SFTP among others. Check out the full list here.

Installation

Via Composer:

composer require wsw/simple-upload

Usage

Basic use:

<?php

use League\Flysystem\Adapter\Local;
use WSW\SimpleUpload\Services\SimpleUpload;

try {
    $adapter = new Local('/home/files');
    $file    = SimpleUpload::create($_FILES['file'], $adapter)->send();
   
} catch (\Exception $e) {
    echo $e->getMessage();
}

Advanced use:

<?php

use League\Flysystem\Adapter\Local;
use WSW\SimpleUpload\Services\SimpleUpload;

try {
    $adapter = new Local('/home/files');
    $upload  = SimpleUpload::create($_FILES['file'], $adapter);
    
    // Optional Methods
    
    //Create a new directory from the root directory defined on the adapter.
    $upload->setPath('newDir'); // Ex:/home/files/newDir/
    
    // Define a new file name
    $upload->setName('newName'); // Ex: newName.csv
    
    // Defines which file extensions the upload will allow
    $upload->setAllowedExtensions(['csv', 'txt']);
    
    $file = $upload->send();

} catch (\Exception $e) {
    echo $e->getMessage();
}

Result

<?php
// Returns the size of the file in KB
echo $file->getSize(); // 94762

// Returns the file type
echo $file->getMimetype(); // text/plain

// Returns instance of DateTime for date and time of creation
echo $file->getTimestamp(); // \DateTime

// Absolute file path
echo $file->getPath(); // /home/files/file.txt

// Directory where the file is located
echo $file->getFilePath(); // /home/files/

// Filename with extension
echo $file->getFileName(); // file.txt

// Filename without extension
echo $file->getName(); // file

// File extension
echo $file->getExtension(); // txt

Testing

$ composer test

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

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