unglud / laravel-image
Laravel 5 的基本图片保存器
v2.0
2018-06-28 08:02 UTC
Requires
- php: ^7.1
- illuminate/support: ^5.0
- intervention/image: ~2
Requires (Dev)
- mockery/mockery: ^1.1.0
- phpunit/phpunit: ^7.0
This package is not auto-updated.
Last update: 2024-09-14 17:31:58 UTC
README
Laravel 5 的基本图片保存器。
如果您需要将上传的图片保存到某个地方并保存到数据库中,最佳方式是在公共文件夹中保存具有唯一名称的图片,然后将该名称保存到数据库中。
因此,此包会为您完成这些操作。
安装
Laravel Image 以 composer 包的形式分发
composer require unglud/laravel-image
如果您以后想更改配置,请首先发布配置文件
php artisan vendor:publish
之后,您可以编辑文件 config/lavaimage.php
。
保存图片
使用 LavaImage::save()
将图片保存到 public/uploads
,此方法生成唯一的 8 位字符文件名并将其放入 深度树形文件夹结构。
use Unglued\LavaImage\Facades\LavaImage; $fileHash = LavaImage::save('http://lorempixel.com/300/300/'); // $fileHash == 203bad62 // and file stored in /public/uploads/2/0/203bad62.jpg // now you can save hash to file in your storage $myModel = new MyModel(); $myModel->image = $fileHash; $myModel->save();
文件结构
您可以在配置文件中指定另一个文件夹结构,例如任何深度或文件夹名称长度
for 203bad62 it can be
/2/0/203bad62.jpg
/2/0/3/b/203bad62.jpg
/20/203bad62.jpg
/20/3b/203bad62.jpg
etc....
裁剪并保存
您可以将大小作为第二个参数指定以进行中心适应裁剪
LavaImage::save('http://lorempixel.com/300/300/', [100,100]);
作为第一个参数,您可以传递任何数据,这些数据是 Intervention/image make 方法 支持的
// save image from file LavaImage::save('public/foo.jpg'); // or save image from binary data LavaImage::save(file_get_contents('public/foo.jpg')); // save image from gd resource LavaImage::save(imagecreatefromjpeg('public/foo.jpg')); // save image directly from an url LavaImage::save('http://example.com/example.jpg'); // save image directly from Laravel file upload LavaImage::save(Input::file('photo'));
保存后,您可以通过 LavaImage::getImageCode()
获取生成的哈希
获取图片
然后您需要获取一个图片,使用您已知的哈希值
$hash = '203bad62' LavaImage::getImage($hash); // will return http://example.com/uploads/2/0/203bad62.jpg LavaImage::getImage($hash, true); // will return absolute path /home/var/laravel/public/uploads/2/0/203bad62.jpg
许可证
Laravel Image 在 MIT 许可下发布。有关详细信息,请参阅捆绑的 LICENSE 文件。