unglud/laravel-image

Laravel 5 的基本图片保存器

v2.0 2018-06-28 08:02 UTC

This package is not auto-updated.

Last update: 2024-09-14 17:31:58 UTC


README

Laravel 5 的基本图片保存器。

如果您需要将上传的图片保存到某个地方并保存到数据库中,最佳方式是在公共文件夹中保存具有唯一名称的图片,然后将该名称保存到数据库中。

因此,此包会为您完成这些操作。

GitHub release Build Status License Total Downloads

安装

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 文件。