wielski / laravel-storager
Laravel Storager
dev-master
2015-12-26 05:00 UTC
Requires
- php: >=5.5.0
- ext-gd: *
- illuminate/support: >=5.0.0
- league/flysystem: >=1.0
- symfony/http-foundation: >=2.0
This package is not auto-updated.
Last update: 2024-09-18 20:23:01 UTC
README
特性
- 使用 Laravel Storage 处理文件。
- 通过 Laravel 路由加载文件,而不是公共路径。
- 保存图片带有缩略图,大小可自定义。
安装
-
安装 File API
composer require wielski/laravel-fileapi
-
在
config/app.php
中设置服务提供者Wielski\FileApi\FileApiServiceProvider::class,
-
发布配置文件
php artisan vendor:publish --tag=fileapi_config
配置
在 config/fileapi.php
-
填写存储路径,它会为您创建路由。
'path' => ['/images/event/', '/images/article/'],
它会生成如下路由
Route::get('/images/event/{filename}', function ($filename) { $entry = new \Wielski\FileApi\FileApi('/images/event/'); return $entry->getResponse($filename); }); Route::get('/images/article/{filename}', function ($filename) { $entry = new \Wielski\FileApi\FileApi('/images/article/'); return $entry->getResponse($filename); });
-
设置默认缩略图大小(键值对形式)
'default_thumbs' => ['S' => '96x96', 'M' => '256x256', 'L' => '480x480'],
用法
初始化 File API
use \Wielski\FileApi\FileApi; $fa = new FileApi(); # use default path (as '/images/') $fa_event = new FileApi('/images/event/'); # initialize it by giving a base path $fa_article = new FileApi('/images/article/'); # initiate another instance
通过上传的文件保存
-
默认用法:获取唯一文件名
$file = $fa->save(\Input::file('main_image')); // => wfj412.jpg
-
自定义上传文件名
$file = $fa->save(\Input::file('main_image'), 'custom-file-name'); // => custom-file-name.jpg
-
默认设置三个缩略图(等比例缩放)
缩略图功能
-
设置自定义缩略图大小
$file = $fa ->thumbs([ 'S' => '150x100', 'M' => '300x200', 'L' => '450x300' ]) ->save(\Input::file('main_image'));
-
制作裁剪缩略图
$file = $fa->crop()->save(\Input::file('main_image'));
获取图片 URL
$fa->get('wfj412.jpg'); // => get image url of 'L' size $fa->get('wfj412.jpg', 'M'); // => get image url of 'M' size $fa->get('wfj412.jpg', 'full); // => get image url of full size
删除图片和缩略图
$fa->drop('wfj412.jpg');
获取文件完整路径(从 Laravel Storage 抽象路径)
$fa->getPath('wfj412.jpg'); // => '/images/event/wfj412.jpg'
解析文件路径到 URL
如果您将文件存储在云存储中并且想获取云站点的 URL,可以使用 url() 方法来获取
echo $fa->getUrl('wfjsdf.jpg'); // => "https://s3-ap-northeast-1.amazonaws.com/xxx/xxx/55c1e027caa62L.png"
与 Blade 一起工作
在 app.php 中为 FileApi 类添加别名
'FileApi' => Wielski\FileApi\FileApi::class,
在 Blade 中使用
{{ FileApi::getFile('/images/avatars/', 'image.jpg', 'S') ?: 'default.jpg' }}
与 Laravel Storage 一起工作
-
获取文件内容
\Storage::get($fa->getPath('wfj412.jpg'));
-
写入文件
\Storage::put($fa->getPath('wfj412.jpg'));
-
获取 MIME 类型
\Storage::mimeType($fa->getPath('wfj412.jpg'));