[扩展推荐] Laravel ImageUp 图片上传辅助工具

file

Laravel ImageUp 是由 Mohd. Saqueib Ansari 开发的一个扩展包,它借助 Intervention Image 扩展包实现了 Laravel Eloquent 模型中图片的自动上传、调整大小以及剪裁。

要使用这个扩展包,你需要在 Eloquent 模型中加入一个 HasImageUploads 的 trait,并且定义该模型中所有需要在数据库中存储的图片字段。

下面示例中,在 User 中定义了两个图片字段,他们分别和数据库中的字段保持一致:

<?php
namespace App;

use QCod\ImageUp\HasImageUploads;
use Illuminate\Database\Eloquent\Model;

class User extends Model {
    use HasImageUploads;

    // assuming `users` table has 'cover', 'avatar' columns
    // mark all the columns as image fields
    protected static $imageFields = [
        'cover', 'avatar'
    ];
}

保存模型会自动上传这些图片,并且将他们的路径保存到数据库中。同时,已经存在的路径也会被更新,即使是清除旧的图片。

你可以对 $imageFields进行很多配置,比如上传和调整尺寸等选项:

// all the images fields for model
protected static $imageFields = [
    'avatar' => [
        // width to resize image after upload
        'width' => 200,

        // height to resize image after upload
        'height' => 100,

        // set true to crop image with the given width/height and you can also pass arr [x,y] coordinate for crop.
        'crop' => true,

        // what disk you want to upload, default config('imageup.upload_disk')
        'disk' => 'public',

        // a folder path on the above disk, default config('imageup.upload_directory')
        'path' => 'avatars',

        // placeholder image if image field is empty
        'placeholder' => '/images/avatar-placeholder.svg',

        // validation rules when uploading image
        'rules' => 'image|max:2000',

        // override global auto upload setting coming from config('imageup.auto_upload_images')
        'auto_upload' => false,

        // if request file is don't have same name, default will be the field name
        'file_input' => 'photo'
    ],
    'cover' => [
        //...
    ]
];

你也可以修改 HasImageUploads的 trait来自定义上传图像字段
具体详细的方法和配置,请查看github readme.

如果需要自由的手动上传图片,可以使用uploadImage()方法(请禁用模型上的自动上传):

$user = User::findOrFail($id);
$user->uploadImage(request()->file('cover'), 'cover');

安装方法:

composer require qcod/laravel-imageup

github:https://github.com/qcod/laravel-imageup
这里可以查看详细的安装方法和使用说明。
如果觉得对你有帮助,记得star!

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/laravel-imageup

译文地址:https://learnku.com/laravel/t/18849

本帖已被设为精华帖!
本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

使用默认的自动上传方式,发现图片并没有成功上传,有没有更具体的使用方式?

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!