[扩展推荐] 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!


Practice makes perfect.

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

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

本帖已被设为精华帖!
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

社区文档:

将托管在 packagist.org 和 github.com 的扩展包使用国内 CDN 加速
GitHub Laravel 扩展包 TOP 250
速查表方便快速查询框架功能,支持手机访问,支持中英文版本
Laravel 中文文档,由社区用户翻译和维护,将会保持一直更新
此文档的目的,就是为了提高技术团队的凝聚力、一致性和生产效率。
开发环境的部署,开发者工具的选择,适用于 Mac 和 Windows。
浓缩过后的精华
Laravel Nova 后台管理面板文档的中文翻译
Lumen 中文文档,由社区用户翻译和维护,将会保持一直更新
Laravel 下知名扩展包 Dingo API 的中文文档,Laravel API 开发必知必会