Laravel ImageUp
发布时间 作者 Paul Redmond
Laravel ImageUp 是 Mohd. Saqueib Ansari 开发的一个包,它使用 Intervention image 包为 Laravel Eloquent 模型提供自动图像上传、调整大小和裁剪功能。
要使用此包,您需要向 Eloquent 模型添加一个名为 HasImageUploads
的 trait,并定义需要存储在数据库中的模型所有图像。
readme 示例演示了 User
模型上的两个图像字段,这些字段与数据库中的相应列匹配。
<?phpnamespace 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 modelprotected 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 提供的方法,动态自定义图像字段。有关可用方法和配置选项的完整参考,请查看包的 readme。
您还可以使用 uploadImage()
方法手动上传图像(确保在模型上禁用自动上传)。
$user = User::findOrFail($id);$user->uploadImage(request()->file('cover'), 'cover');
您可以使用 composer 包安装此包,使用
composer require qcod/laravel-imageup
查看 GitHub 上的此包,了解完整的安装和使用说明。请务必查看存储库并为它加星标!