Загрузка изображения Tinimce 4 вызывает ошибку HTTP: 404

Я использую tinymce 4 с загрузкой изображения из примера, и после выбора изображения для загрузки я получаю сообщение «Ошибка HTTP: 404».

Я протестировал пример postAcceptor.php с публикацией файла изображения, и он работает. В результате публикации изображения я получаю ответ JSON:

{"location":"/home/mylogin/domains/mydomain.com/public_html/projects/projectname/img/gallery/422.jpg"}

Это правильно с этими дополнительными косыми чертами? Мой код для инициализации:

      tinymce.init({
            selector: 'textarea.content',
            plugins: 'image code',
            toolbar: 'undo redo | link image | code',
            // enable title field in the Image dialog
            image_title: true,
            automatic_uploads: true,

            images_upload_url: 'postAcceptor.php',
            images_upload_base_path: '/img/gallery/',
            images_upload_credentials: true,

            file_picker_types: 'image',

            // and here's our custom image picker
            file_picker_callback: function(cb, value, meta) {
                var input = document.createElement('input');
                input.setAttribute('type', 'file');
                input.setAttribute('accept', 'image/*');
                input.onchange = function() {
                    var file = this.files[0];

                    var reader = new FileReader();
                    reader.readAsDataURL(file);
                    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);
                        cb(blobInfo.blobUri(), { title: file.name });
                    };
                };

                input.click();
            }
        });

person Mateusz Petkiewicz    schedule 09.08.2017    source источник


Ответы (2)


JSON, который вы возвращаете, выглядит точно так же, как на жестком диске сервера. Местоположение превращается в атрибут src для изображения, поэтому это должен быть URL-адрес, который позволит браузеру получать изображение через веб-сервер.

person Michael Fromin    schedule 09.08.2017
comment
Все такой же. Изменил его на обычный URL, и теперь я получаю: {location:http:\/\/localhost\/projectname\/img\/gallery\/422.jpg} - person Mateusz Petkiewicz; 09.08.2017
comment
Что оказывается в редакторе изображения src при его обработке? Обычно вы не включаете протокол или имя хоста в возвращаемое значение. - person Michael Fromin; 09.08.2017
comment
То, что вы возвращаете, должно быть действительным URL-адресом. Если то, что вы возвращаете, не может использоваться браузером, вам нужно изменить то, что вы возвращаете. - person Michael Fromin; 09.08.2017

404 был вызван из-за

images_upload_url: 'postAcceptor.php',

я изменил его на

images_upload_url: './js/tinymce/postAcceptor.php',

Работал как шарм..

person Mateusz Petkiewicz    schedule 10.08.2017