A very simple yet useful helper class to handle PHP file uploads.
- Supports Multiple file uploads
- Supports Exif for images
- Built-in and Custom validations
- Simple implementation
- or you can ask for more ...
$ composer require lodev09/php-upload
<form action="index.php" method="post" enctype="multipart/form-data">
<input type="file" name="files[]" multiple /><br>
<input type="submit" name="submit" value="Submit" />
</form>
use \Upload\Upload;
if (isset($_FILES['files'])) {
$validations = array(
'category' => array('document', 'image', 'video'), // validate only those files within this list
'size' => 20 // maximum of 20mb
);
// create new instance
$upload = new Upload($_FILES['files'], $validations);
// for each file
foreach ($upload->files as $file) {
if ($file->validate()) {
// do your thing on this file ...
// ...
// say we don't allow audio files
if ($file->is('audio')) $error = 'Audio not allowed';
else {
// then get base64 encoded string to do something else ...
$filedata = $file->get_base64();
// or get the GPS info ...
$gps = $file->get_exif_gps();
// then we move it to 'path/to/my/uploads'
$result = $file->put('path/to/my/uploads');
$error = $result ? '' : 'Error moving file';
}
} else {
// oopps!
$error = $file->get_error();
}
echo $file->name.' - '.($error ? ' [FAILED] '.$error : ' Succeeded!');
echo '<br />';
}
}
?>
All bugs, feature requests, pull requests, feedback, etc., are welcome. Visit my site at www.lodev09.com or email me at [email protected]
© 2018 - Coded by Jovanni Lo / @lodev09
Released under the MIT License. See LICENSE file.