twom/laravel-file-manger is a Laravel package for upload file and download it :).
It currently has 3 GitHub stars and 187 downloads on Packagist (latest version 1.1.3).
Install it with composer require twom/laravel-file-manger.
Discover more Laravel packages by twom
or browse all Laravel packages to compare alternatives.
Last updated
composer require twom/laravel-file-manger
You must add the service provider to config/app.php
'providers' => [
// for laravel 5.8 and below
\Twom\FileManager\FileManagerServiceProvider::class,
];
Publish your config file and migrations
php artisan vendor:publish
config/filemanager.php
return [
"type" => "default",
"types" => [
"default" => [
"provider" => \Twom\FileManager\Types\File::class,
"path" => "default_files/test/",
"private" => false,
"date_time_prefix" => true,
"use_file_name_to_upload" => false,
"secret" => "ashkdsjka#sdkdjfsj22188455$$#$%dsDFsdf",
"download_link_expire" => 160, // minutes
],
"image" => [
"provider" => \Twom\FileManager\Types\Image::class,
"path" => "images/upload/documents/",
"sizes" => ["16", "24", "32", "64", "128", "320"],
"thumb" => "320"
],
"profile" => [
"parent" => "image",
"path" => "images/upload/profiles/",
"date_time_prefix" => false,
],
],
];
| name | type | description |
|---------------|--------------|---------------------------|
| provider | string (class name)| provider class name, must be extended of Twom\FileManager\BaseType |
|path | string | file upload path |
|private | boolean | is private or no if is true so upload file in storage folder else if is false so upload file in public folder |
|date_time_prefix|boolean | if is true so upload file with /{year}/{month}/{day} prefix|
|use_file_name_to_upload| boolean| if is true we use of the file original name else we generate a random name|
|secret |string | secret key for generate download link and download file|
|download_link_expire|boolean|generated download link expire time|
|parent |string |parent type name |
|sizes |array |array of sizes and there are only for image type|
|thumb |string or number|size for thumb image and this is only for image type|
$file = request()->file('filename');
$upload = File::upload($file);
// get file uploaded path
$filePath = $upload->getFilePath();
// get file name
$fileName = $upload->getName();
| method |description |
|--------------------------------------|---------------------------------------------|
| useFileNameToUpload($status = true)|if is true we use of the file original name else we generate a random name|
|type($type = null) |change type for upload if is null so use of default type|
|getFile($name = null) |get file by name and return a \Twom\FileManager\Models\File|
| setPath($path) |set file upload path |
| delete($filename) |delete the file help by this provider type |
| getUploadPath() |get upload path |
| dateTimePrefix($value = true) |if is true so upload file with /{year}/{month}/{day} prefix|
| setName(string $name) |set file name |
| setFormat(string $format) |set format for file upload |
| isPrivate() | if you call this so upload file in storage folder and your you don't have permission to access this file|
| isPublic() |if you call this so upload file in public folder and has access to this file|
$file = request()->file('filename');
$upload = \Twom\FileManager\Facades\File::setName('your specific name')
->isPrivate()
->setFormat('png')
->dateTimePrefix()
->upload($file);
// get file uploaded path => if is public you can use it for download
dd($upload->getFilePath());
$file = File::getFile("file uploaded name");
$file->name;
$file->path;
$file->type; // config file selected type
$file->isPrivate;
$file->isPublic;
$file->generateLink();
// return response download
// $file->download();
$file = request()->file('filename');
$upload = \Twom\FileManager\Facades\File::type("type_name") // type name in config file (filemanager.php)
->upload($file);