Laravel-admin集成Ueditor 自定义附件上传时的文件名
一、安装Laravel-Ueditor
1. 执行composer命令
composer require codingyu/ueditor
2. 发布资源
php artisan vendor:publish --provider=Codingyu\LaravelUEditor\UEditorServiceProvider
3. 修改config/admin.php 增加扩展
'extensions' => [
'ueditor' => [
// 如果要关掉这个扩展,设置为false
'enable' => true,
// 编辑器的前端配置 参考:http://fex.baidu.com/ueditor/#start-config
'config' => [
'initialFrameHeight' => 400, // 例如初始化高度
],
// 'field_type' => '自定义名字'
]
],
4. 修改config/ueditor.php
配置里面有详细注释,包含文件大小、格式、路径等
二、在form表单中使用
$form->UEditor('content', '内容')->required();
三、自定义附件上传时的文件名
1. 执行命令,增加listener类
php artisan make:listener UploadingNotification
2. 修改app/Listeners/UploadingNotification.php
<?php
namespace App\Listeners;
use Codingyu\LaravelUEditor\Events\Uploading;
class UploadingNotification
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param object $event
* @return void
*/
public function handle(Uploading $event)
{
$old_name = $event->file->getClientOriginalName(); //旧文件名
$new_name = md5(uniqid()) . '.' . $event->file->getClientOriginalExtension(); //新文件名
return $event->filename = str_replace($old_name, $new_name, $event->filename); //替换文件名
}
}
3. 修改app/Providers/EventServiceProvider.php
use Codingyu\LaravelUEditor\Events\Uploading;
protected $listen = [
//监听Laravel-Ueditor的Uploading事件
Uploading::class => [
UploadingNotification::class
]
];