tinymce4.x 上傳本地圖片(自己寫個插件)


tinymce是一款挺不錯的html文本編輯器。但是添加圖片是直接添加鏈接,不能直接選擇本地圖片。

下面我寫了一個插件用於直接上傳本地圖片。

在tinymce的plugins目錄下新建一個uploadimage目錄,用於存放我新寫的上傳本地圖片的插件。

下面看看plugin.js文件的具體內容。

/**
 * tinymce plugin
 * Created by jerry on 16/8/5.
 */
tinymce.PluginManager.add('uploadimage', function (editor) {

    function selectLocalImages() {
        var dom = editor.dom;
        var input_f = $('<input type="file" name="thumbnail" accept="image/jpg,image/jpeg,image/png,image/gif" multiple="multiple">');
        input_f.on('change', function () {
            var form = $("<form/>",
                {
                    action: editor.settings.upload_image_url, //設置上傳圖片的路由,配置在初始化時
                    style: 'display:none',
                    method: 'post',
                    enctype: 'multipart/form-data'
                }
            );
            form.append(input_f);
            //ajax提交表單
            form.ajaxSubmit({
                beforeSubmit: function () {
                    return true;
                },
                success: function (data) {
                    if (data && data.file_path) {
                        editor.focus();
                        data.file_path.forEach(function (src) {
                            editor.selection.setContent(dom.createHTML('img', {src: src}));
                        })
                    }
                }
            });
        });

        input_f.click();
    }

    editor.addCommand("mceUploadImageEditor", selectLocalImages);

    editor.addButton('uploadimage', {
        icon: 'image',
        tooltip: '上傳圖片',
        onclick: selectLocalImages
    });

    editor.addMenuItem('uploadimage', {
        icon: 'image',
        text: '上傳圖片',
        context: 'tools',
        onclick: selectLocalImages
    });
});

 

下面是組件初始化js代碼:

tinymce.init({
            selector: "textarea[data-provide='tinymce']",
            upload_image_url: '/upload/cloud', //配置的上傳圖片的路由
            height: 400,
            plugins: [
                'advlist autolink autosave lists link image charmap print preview anchor',
                'searchreplace visualblocks code fullscreen textcolor colorpicker textpattern code uploadimage',
                'contextmenu paste'
            ],
            toolbar1: "undo redo | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | fontselect fontsizeselect ",
            toolbar2: "forecolor backcolor | bullist numlist | outdent indent | removeformat | link unlink uploadimage | preview fullscreen ",
            menubar: false,
            //statusbar : false,
            content_css: [
                '/style/tinymce.css'
            ]
            //參考網站 https://www.tinymce.com/
        });

現在運行編輯器菜單如下:

點擊圖片小圖標就可以從本地選擇圖片上傳了。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM