adriel/laravel-tinymce-simple-imageupload

为Laravel中的TinyMCE提供简单的图片上传。

1.3.0 2019-10-01 03:38 UTC

This package is not auto-updated.

Last update: 2024-09-28 07:35:16 UTC


README

为Laravel中的TinyMCE提供简单的图片上传。

为什么制作这个?

因为,我使用TinyMCE,基本来说,在编辑内容时直接上传图片相当难以理解。有很多TinyMCE的图片上传器,但它们的功能太复杂,而我只需要一个核心用例,选择图片上传

就是这样,所以我创建了这个包以供我的项目重用。嗯,如果你想,你也能使用这个。

此包适用于Laravel 5.0+。

安装

对于Laravel 5.5+

$ composer require "adrielpin/laravel-tinymce-simple-imageupload:~1.3"

对于Laravel 5.5之前的版本

$ composer require "adrielpin/laravel-tinymce-simple-imageupload:~1.1"

对于Laravel版本5.4及更早版本,您需要在config/app.php中注册服务提供者。

    'providers' => [
        ...

        Adrielpin\Tinymce\TinymceServiceProvider::class,

    ]

用法

在包含TinyMCE设置的视图中,您需要包含上传视图,在底部添加此行,

@include('mceImageUpload::upload_form')

不用担心,这个表单在您的视图中是隐藏的,没有人会看到它,因为它设置为display: none

下一步是将此配置添加到tinymce对象中,

    tinymce.init({
        // .. your config here
        relative_urls: false,
        file_browser_callback: function(field_name, url, type, win) {
            // trigger file upload form
            if (type == 'image') $('#formUpload input').click();
        }
    });

就这样,现在您应该能够在编写内容时直接将图片上传到编辑器。

如果需要在resources/views目录中自定义,可以发布视图

$ php artisan vendor:publish --provider=Petehouston\Tinymce\TinymceServiceProvider

尝试示例

包中有一个设置示例,您可以通过添加一个示例路由在您的项目中尝试它,

Route::get('/tinymce_example', function () {
    return view('mceImageUpload::example');
});

一些注意事项

图片上传处理程序

我已经设置了一个控制器Adrielpin\Tinymce\TinymceController,它实现了一个用于图片上传的方法。

如你所见,它将所有上传的图片存储在public/img目录中,名称是连接的哈希值,

$filename = 'image_'.time().'_'.$image->hashName();

默认的图片上传处理路由是/tinymce/simple-image-upload

自定义上传URL和控制器

如果您不希望预先配置包,请自定义您的设置。

在包含上传表单时,传入处理图片上传的URL

@include('mceImageUpload::upload_form', ['upload_url' => 'YOUR_URL_FOR_HANDLING_IMAGE_UPLOAD'])

添加一个处理图片上传的方法,该方法应返回与Adrielpin\Tinymce\TinymceController中相同的结果。