antennaio / laravel-clyde
Laravel 的图片上传和处理,Glide 的包装器
v0.0.10
2016-06-14 15:13 UTC
Requires
- illuminate/config: ^5.1
- illuminate/contracts: ^5.1
- illuminate/routing: ^5.1
- illuminate/support: ^5.1
- league/glide: ^1.0
- league/glide-symfony: ^1.0
- symfony/http-foundation: ^2.7|^3.0
Requires (Dev)
- mockery/mockery: ^0.9.4
- orchestra/testbench: ~3.0
- phpunit/phpunit: 5.*
README
Laravel 的图片上传和处理,Glide 的包装器
您可以使用此包将图片上传到本地文件系统或S3,并以不同大小在网站上显示。感谢 Glide,所有处理过的图片都会在后续访问中被缓存和保留。
安装
通过 composer 安装
composer require antennaio/laravel-clyde:~0.0.1
将服务提供者添加到配置
// config/app.php
'provider' => [
...
Antennaio\Clyde\ClydeServiceProvider::class,
...
];
如果您打算使用门面,也需要安装它们
// config/app.php
'aliases' => [
...
'ClydeUpload' => Antennaio\Clyde\Facades\ClydeUpload::class,
'ClydeImage' => Antennaio\Clyde\Facades\ClydeImage::class,
...
];
发布配置
php artisan vendor:publish --provider="Antennaio\Clyde\ClydeServiceProvider"
上传
您可以使用依赖注入或门面,由您决定。
use Antennaio\Clyde\ClydeUpload; ... protected $uploads; public function __construct(ClydeUpload $uploads) { $this->uploads = $uploads; } public function upload(Request $request) { if ($request->hasFile('image')) { $filename = $this->uploads->upload($request->file('image')); } }
use Antennaio\Clyde\Facades\ClydeUpload; ... public function upload(Request $request) { if ($request->hasFile('image')) { $filename = ClydeUpload::upload($request->file('image')); } }
Clyde 生成的每个文件名都是唯一的。请确保存储文件名,以便以后显示图片。
您可以通过向 upload
方法传递额外的参数来控制上传文件保存的位置。以下是一个保存图片并保留其原始名称的示例
ClydeUpload::upload($request->file('image'), $request->file('image')->getClientOriginalName());
您也可以使用闭包来修改文件路径
ClydeUpload::upload($request->file('image'), function ($filename) { return 'profile-images'.DIRECTORY_SEPARATOR.$filename; });
您还可以检查图片是否已存在
// returns true or false ClydeUpload::exists('image.jpg');
或删除之前上传的图片
ClydeUpload::delete('image.jpg');
显示图片
<img src="{{ ClydeImage::url('56a1472beca5d.jpg') }}">
您可以将各种图像处理作为第二个参数传递
<img src="{{ ClydeImage::url('56a1472beca5d.jpg', ['w' => 800, 'h' => 600, 'fit' => 'crop']) }}">
有关可用的完整处理列表,请参阅 Glide 文档
http://glide.thephpleague.com/1.0/api/quick-reference/
此外,您还可以设置预设并使用它们作为应用图像处理的更快方式
// config/clyde.php
'presets' => [
[
'thumbnail' => [
'w' => 100,
'h' => 100,
'fit' => 'crop'
]
]
],
<img src="{{ ClydeImage::url('56a1472beca5d.jpg', 'thumbnail') }}">
水印
水印默认存储在本地文件系统中。要使用水印,请将水印文件放在 storage/app/watermarks
目录中。要调整水印文件存储的位置,您可以编辑配置中的 watermarks
和 watermarks_path_prefix
条目。
ClydeImage::url('56a1472beca5d.jpg', [
'mark' => 'watermark.png',
'markpos' => 'top-right',
'markw' => '50',
'markh' => '50',
'markpad' => '10'
]);
安全性
Clyde 生成的所有 URL 默认都是签名过的。这意味着所有 URL 都会附加一个签名,并在显示图片时进行验证。要将此功能关闭,请在配置中将 secure_urls
键设置为 false(不推荐)。
Clyde?
包名是对 Clyde "The Glide" Drexler 的致敬。