antennaio/laravel-clyde

Laravel 的图片上传和处理,Glide 的包装器

v0.0.10 2016-06-14 15:13 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:36:47 UTC


README

Laravel 的图片上传和处理,Glide 的包装器

您可以使用此包将图片上传到本地文件系统或S3,并以不同大小在网站上显示。感谢 Glide,所有处理过的图片都会在后续访问中被缓存和保留。

Clyde The 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 目录中。要调整水印文件存储的位置,您可以编辑配置中的 watermarkswatermarks_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 的致敬。