kipajek
@kipajek
Учусь...

TinyMCE как получить изображения из textarea?

Доброго времени суток, подскажите пожалуйста как работает TinyMCE.
1. Я подключил редактор к себе в проект:
<script src="https://cloud.tinymce.com/stable/tinymce.min.js?apiKey=a5vmmhkgickdta83413kq8sm0igzmoexjzf9axhppdmqi6g3"></script>

2. Добавил настройки:
<script>tinymce.init({selector: 'textarea', language_url : '/front/js/ru.js', file_browser_callback_types: 'file image media', images_upload_base_path: '/files/images/projects/<?=$projectItem['id']?>', plugins: 'image code table contextmenu paste',
    toolbar: 'undo redo | link image | code', 
image_title: true, 
  // enable automatic uploads of images represented by blob or data URIs
  automatic_uploads: false,
  // URL of our upload handler (for more details check: https://www.tinymce.com/docs/configure/file-image-upload/#images_upload_url)
  // images_upload_url: 'postAcceptor.php',
  // here we add custom filepicker only to Image dialog
  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/*');
    
    // Note: In modern browsers input[type="file"] is functional without 
    // even adding it to the DOM, but that might not be the case in some older
    // or quirky browsers like IE, so you might want to add it to the DOM
    // just in case, and visually hide it. And do not forget do remove it
    // once you do not need it anymore.

    input.onchange = function() {
      var file = this.files[0];
      
      var reader = new FileReader();
      reader.onload = function () {
        // Note: Now we need to register the blob in TinyMCEs image blob
        // registry. In the next release this part hopefully won't be
        // necessary, as we are looking to handle it internally.
        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();
  }
});</script>

3. Функция в скрипте из изображения получает Blob данные, и пытается сохранить все эти буквы и цифры в БД mysql.

4. Вопрос: где почитать как написать обработчик который бы получал эти данные и грузил в определенную папку, неразобрался в документации на сайте TinyMCE. Нужно парсить картинки из текста который приходит из textarea?
Или как оно должно работать на самом деле?
  • Вопрос задан
  • 607 просмотров
Решения вопроса 1
kipajek
@kipajek Автор вопроса
Учусь...
Немного не понимал как работает TinyMCE, подключил к нему файловый менеджер Responsive File Manager и все заработало!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Anvi-Vt
web developer
Если вы грузите файл через инпут, то получать в контроллере необходимо $_FILE
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы