pfrug / file-upload
用于在Laravel模型中管理上传图片的特性
v1.0.0
2023-07-26 21:54 UTC
Requires (Dev)
- phpunit/phpunit: ^10.2
- squizlabs/php_codesniffer: ^3.7
This package is auto-updated.
Last update: 2024-09-30 02:05:27 UTC
README
简化Laravel中图片上传的特质
安装
composer require pfrug/file-upload 1.0
// config/app.php 'providers' => [ ... Pfrug\FileUpload\FileUploadServiceProvider::class, ];
使用
在你的模型中实现HasImageUploads
指定类型为文件的字段
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Pfrug\FileUpload\Traits\HasImageUploads; class Post extends Model { use HasImageUploads; protected $uploadableImages = [ 'image', 'thumb' ];
在控制器中不需要指定任何内容。
仅使用fill
或create
方法即可正确保存图片
public function store(Request $request) { // ... you code here, try-catch validate etc.. Post::create($request->all()); ... public function update(Request $request, Post $post) // ... you code here, try-catch, validate data, etc.. $post->fill($request->all()); $post->save();
或者直接分配
$post->title = $request->title ; $post->image = $request->file('image'); $post->save();
视图
如果你愿意,可以使用默认视图
@include('fileupload::imageField', [ 'item' => $post, 'field' => 'image', 'cant_delete' => true ])
配置
php artisan vendor:publish --tag="fileupload-assets" --provider="Pfrug\FileUpload\FileUploadServiceProvider" php artisan vendor:publish --tag="fileupload-lang" --provider="Pfrug\FileUpload\FileUploadServiceProvider" php artisan vendor:publish --tag="fileupload-views" --provider="Pfrug\FileUpload\FileUploadServiceProvider"
以下命令创建文件到
"fileupload-assets"
{project}resources/css/vendor/fileupload/file-upload.css
{project}resources/js/vendor/fileupload/file-upload.js
{project}resources/img/vendor/fileupload/default.png
"fileupload-lang"
{project}resources/lang/{en-es}/fileupload.php
"fileupload-views"
{project}resources/view/vendor/fileupload/imageField.blade.php
图片存储
图片将保存在文件夹storage/app/public/{model}
中
创建符号链接很重要,可以使用命令php artisan storage:link
完成
文件路径将保存在数据库中,因此建议它是一个varchar(100)类型的字段
例如:posts/9c744648c08730cd850c4d7dad9b998d.jpg
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。