erlandmuchasaj / laravel-file-uploader
一个简单的包,帮助您轻松地将文件上传到Laravel项目。
1.1.3
2024-09-17 15:33 UTC
Requires
- php: ^8.0
- ext-exif: *
- ext-fileinfo: *
- ext-json: *
- illuminate/contracts: ^8|^9|^10|^11
- illuminate/filesystem: ^8|^9|^10|^11
- illuminate/http: ^8|^9|^10|^11
- illuminate/support: ^8|^9|^10|^11
- nesbot/carbon: ^2
README
Laravel File Uploader 提供了一种简单的方法来将文件上传到不同的磁盘。该包的主要目的是移除重复和繁琐的代码,并将其简化为一些简单的方法。
安装
您可以通过Composer安装此包
composer require erlandmuchasaj/laravel-file-uploader
用法
此包具有非常简单直接的用法。只需导入包,并将文件作为参数传递,它将处理其余操作。
use ErlandMuchasaj\LaravelFileUploader\FileUploader; Route::post('/files', function (\Illuminate\Http\Request $request) { $max_size = (int) ini_get('upload_max_filesize') * 1000; // FileUploader::images() get all image extensions ex: jpg, png, jpeg, gif, etc. // FileUploader::documents() get all documents extensions ex: 'csv', 'html', 'pdf', 'doc', 'docx', 'ppt' etc. $extensions = implode(',', FileUploader::images()); $request->validate([ 'file' => [ 'required', 'file', 'image', 'mimes:' . $extensions, 'max:'.$max_size, ] ]); $file = $request->file('file'); $response = FileUploader::store($file); // $response = FileUploader::store($file, $options); // available options (as key=>value pare) are: // `disk`, 'user_id`, `path`, `visibility` // do something with the $response // you can save it into your model etc. return redirect() ->back() ->with('success', __('File has been uploaded.')) ->with('file', $response); })->name('files.store'); /** * $response = [ * "type" => "image" * "extension" => "png" * "_extension" => "png" * "name" => "blog3" * "original_name" => "blog3.png" * "size" => 549247 * "mime_type" => "image/png" * "dimensions" => "670x841" * "path" => "uploads/1/image/blog3_1678118034.png" // <== * "url" => "/storage/uploads/1/image/blog3_1678118034.png" * "user_id" => 1 * "disk" => "local" * "visibility" => "public" * "uuid" => "dd5889c0-5057-49ef-a6ef-e3da961a47d1" * ] */
如果您需要修改配置文件,应使用以下命令发布迁移和config/permission.php配置文件:
php artisan vendor:publish --provider="ErlandMuchasaj\LaravelFileUploader\FileUploaderServiceProvider"
一些其他辅助方法
$path = 'uploads/1/image/blog3_1678118034.png'; // the path of the image where is stored. $response = FileUploader::get($path); // get file as StreamedResponse $response = FileUploader::getFile($path); // get file as content. $response = FileUploader::url($path); // full path url - /storage/uploads/1/image/blog3_1678118034.png $response = FileUploader::path($path); // C:\wamp\www\laravel-app\storage\app\uploads/1/image/blog3_1678118034.png $response = FileUploader::meta($path); // metadata about the file. /** * [ * "path" => "C:\wamp\www\laravel-app\storage\app\uploads/1/image/blog3_1678118034.png" * "url" => "/storage/uploads/1/image/blog3_1678118034.png" * "visibility" => "public" * "mimeType" => "image/png" * "size" => "536.37 KB" * "last_modified" => "1 hour ago" * "name" => "blog3_1678118034.png" * "pathinfo" => [ * "dirname" => "uploads/1/image" * "basename" => "blog3_1678118034.png" * "extension" => "png" * "filename" => "blog3_1678118034" * ] * ] */ $response = FileUploader::download($path, 'something_nice'); // download the file as StreamedResponse $response = FileUploader::getVisibility($path); // file visibility when applicable private/public $response = FileUploader::setVisibility($path, 'private'); // change file visibility $response = FileUploader::remove($path); // delete a file
此外,还提供了一些其他尺寸转换辅助函数,例如
$size = 549247; FileUploader::formatBytes($size); // "536.37 KB" FileUploader::convertBytesToSpecified($size, 'KB'); // 536.37KB FileUploader::convertBytesToSpecified($size, 'MB'); // 0.52MB
支持我
我在创建一流的开源软件包上投入了大量的时间和资源。
如果您觉得这个包很有帮助,可以通过点击下面的按钮并捐赠一些金额来支持我,帮助我经常在这些项目上工作。
变更日志
有关最近更改的更多信息,请参阅CHANGELOG。
贡献
有关详细信息,请参阅CONTRIBUTING。
安全漏洞
有关详细信息,请参阅SECURITY。
鸣谢
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。