Simple upload system in PHP, compatible with AWS S3, Dropbox, Azure and others.
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.
Via Composer:
composer require wsw/simple-upload
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();
}
<?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
$ composer test
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.