ar7 / media
在您的laravel项目中探索、上传、删除和创建新文件夹
1.0.3
2023-06-17 18:40 UTC
Requires
- intervention/image: ^2.7
Requires (Dev)
- laravel/framework: ^10.7
README
媒体 - 探索、上传、删除和创建新文件夹
您可以使用此包上传您的媒体并将媒体附加到您的模型上。
安装
composer require ar7/media
.- 将
Ar7\Media\MediaServiceProvider::class
添加到config/app.php
文件中的providers
数组中。 - 将
'Ar7Media' => Ar7\Media\Facades\Ar7Media::class
添加到config/app.php
文件中的aliases
数组中。 - 将
"Ar7\\Media\\": "vendor/ar7/media/src/"
添加到composer.json
文件中的autoload => psr-4
对象中,然后运行此命令:composer dump-autoload
。 - 如果您尚未链接存储,请运行此命令
php artisan storage:link
。 - 运行
php artisan vendor:publish --tag=ar7-media-config
以将配置文件复制到config
文件夹。 - 运行
php artisan vendor:publish --tag=ar7-media-public
以将资产文件复制到public
文件夹,建议使用--force
标志。 - 运行
php artisan vendor:publish --tag=ar7-media-migrations
以将迁移复制到database/migrations
文件夹。 - 运行
php artisan migrate
以创建表。
API
您可以在模型上使用这些方法
有一个用于单个媒体的getSubSize
方法,您可以使用以下代码获取特定子尺寸(您在配置文件中定义的)的图像
$medium->getSubSize('thumbnail');
用法
首先,查看config
文件夹中的ar7_media.php
文件。
将Ar7Media
添加到您的模型中
use Ar7\Media\Ar7Media; class Product extends Model { ... use Ar7Media; ... }
在您的视图中,您必须加载css和js文件并加载媒体选择器
示例
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Ar7 Media</title> <!-- load the css file --> @ar7_media('css') </head> <body> <form method="post"> @csrf <!-- load the media selector --> @ar7_media_start @ar7_media_file('img', '{"name": "image", "placeholder": "Image", "file": ""}') @ar7_media_end <!-- load the media selector --> <br> <button type="submit">Submit</button> </form> <!-- load the js files --> @ar7_media('js') </body> </html>
@ar7_media_file
指令有两个参数
- ID - 用于媒体选择器
- OPTIONS - 包含以下键的JSON对象
{ "name": "(String)", // the key which you can get in $request object when the form submitted "placeholder": "(String)", // placeholder for the media selector "file": "(String)", // Current media path to show in media selector "id": "(Number)" // Current media id }
从控制器上传
要从控制器上传文件,只需使用Ar7Media
外观。
use Ar7\Media\Facades\Ar7Media; class HomeController { function index() { $file = $request->file('file'); Ar7Media::upload($file, 'path'); // path is optional } }
用JS加载
如果您想用javascript加载选择器,请使用以下指令
在媒体选择器blade指令内或外添加此内容。
@ar7_media_start <div id="mp3"></div> @ar7_media_end <!-- OR --> <div id="mp3"></div>
然后使用此代码加载选择器
Ar7Media.loadMediaSelectorWithJS('mp3', {name: 'mp3', placeholder: 'MP3', accept: '.mp3'});
loadMediaSelectorWithJS
方法的参数与@ar7_media_file
指令完全相同。它只有一个第三个参数,获取true
或false
。如果您想在媒体选择器blade指令外添加该div
元素,则应传递false
。
集成
CKEditor
在您的视图中添加一个textarea
<textarea name="editor1"></textarea>
使用媒体作为CKEditor文件浏览器
CKEDITOR.replace('editor1', { filebrowserBrowseUrl: mediaRoute('ar7.media.index'), filebrowserImageBrowseUrl: mediaRoute('ar7.media.index') + '?accept={{ config("ar7_media.mime_types.image/*") }}', });