automatic_uploads TinyMCE

时间:2017-11-20 10:51:45

标签: php ajax tinymce

我面临的问题是,如果我将上传器设置为true,它将直接发送到保存图像的文件。由于这种行为,图像将无法很好地加载。没有图像,只有用于调整大小的边框不起作用。

但是当我将boolean false 附加到它时,它会在编辑页面中加载为完整的图像,但是当我想将帖子发送到数据库时,它会响应为“无法隐藏blob:Number到BLOB“并且图像不会进入文件夹。

通过一些测试,我仍然偶然发现了这个问题。我使用if语句尝试了它:

if(array_key_exists('image',$_POST)){
};

但这不起作用,因为在ajax方法中它只是看不到它。那我该怎么办?使用 false 并构建一种方法将图像插入文件夹或使用 true 但延迟程序或在发生某些事情时将图像发送到目录。

此外,当我使用url图像时,它不会被发送到我认为合适的目录,但是当我使用新规范进行调整时,它将被发送到文件夹,并且在编辑器WYSIWYG中将无法看到。< / p>

$(document).ready(function() {

     tinymce.init ({

        theme: 'modern',
        selector: '.add_body_structure',
        height: 1000,
        menubar: true,
        branding: false,
        toolbar: 'undo redo code | styleselect bold italic forecolor backcolor fontselect fontsizeselect | link paste | alignleft aligncenter alignright alignjustify | outdent indent bullist numlist | removeformat | insert',
        plugins: 'code contextmenu print preview searchreplace autolink directionality visualblocks visualchars fullscreen image link media mediaembed template table charmap hr pagebreak nonbreaking anchor toc insertdatetime advlist lists textcolor wordcount imagetools contextmenu colorpicker textpattern help autoresize noneditable', 
        contextmenu: 'paste | link image inserttable | cell row column deletetable',
        advlist_bullet_styles: 'square',
        advlist_number_styles: 'lower-alpha,lower-roman,upper-alpha,upper-roman',
        statusbar: false,
        browser_spellcheck: true,
        image_title: true, 

        automatic_uploads: true, // or false

        media_live_embeds: true,
        contextmenu: true,
        relative_urls: false,
        remove_script_host: false,
        paste_data_images: true,
        encoding: 'xml',
        invalid_elements: 'script, input, textarea, textfield, col, colgroup, caption, dir, meta, object, select, option, source, title',
        fontsize_formats: '8pt 10pt 12pt 14pt 16pt 18pt 20pt 22pt 24pt 26pt 28pt 30pt 32pt 34pt 36pt 38pt 40pt',
        images_upload_url: '/wysiwyg/tinymce_main/wysiwyg_one_page_version2.1/views/home/code_for_images/image_uploader.php',
        media_live_embeds: true,


        file_picker_callback: function(cb, value, meta) {
            var input = document.createElement('input');
            input.setAttribute('type', 'file');
            input.setAttribute('accept', 'image/*, audio/*, video/*');

            input.onchange = function() {
                var file = this.files[0];

                var reader = new FileReader();
                reader.onload = function () {

                    var id = 'blobid' + (new Date()).getTime();
                    var blobCache =  tinymce.activeEditor.editorUpload.blobCache;
                    var base64 = reader.result.split(',')[1];
                    var blobInfo = blobCache.create(id, file, base64);
                    blobCache.add(blobInfo);
                    // call the callback and populate the Title field with the file name
                    cb(blobInfo.blobUri(), { title: file.name });
                };
                reader.readAsDataURL(file);
            };
        input.click();
        },

        images_upload_handler: function (blobInfo, success, failure) {
             var xhr, formData;

             xhr = new XMLHttpRequest();
             xhr.withCredentials = false;
             xhr.open('POST', 'image_uploader.php');

             xhr.onload = function() {
                 var json;

                 if (xhr.status != 200) {
                      failure('HTTP Error: ' + xhr.status);
                      return;
                 }

             json = JSON.parse(xhr.responseText);

             if (!json || typeof json.location != 'string') {
                 failure('Invalid JSON: ' + xhr.responseText);
                 return;
             }

             success(json.location);
        };

        formData = new FormData();
        formData.append('file', blobInfo.blob(), blobInfo.filename());

        xhr.send(formData);
     }
   });
});     

images_upload_handler 似乎对我没有任何帮助。我是否犯了这个函数的错误,或者在我的情况下它什么也不做。

我也使用Postacceptor.php:https://www.tinymce.com/docs/advanced/php-upload-handler/。显然改变了它对我有用。我将其重命名为 image_uploader.php。

修改 我还没有找到解决方案,但我知道上面的代码不是问题或至少是它的原因。我可以进一步研究这个问题,但这将不合时宜,所以没有找到答案,可以关闭,因为我认为这不会导致任何问题。

1 个答案:

答案 0 :(得分:0)

  

由于此行为,图像将无法正确加载。没有图像   并且只有用于调整大小的边框不起作用。

这是什么意思?看起来这种行为可能是由您的集成本身引起的,而不是TinyMCE。