Summernote добавляет поле «файлы» в POST - PullRequest
0 голосов
/ 27 января 2020

Я пытаюсь использовать Summernote в качестве расширенного поля textarea в форме. Когда форма отправлена, я отправляю переменную $_POST в свой PHP бэкэнд. После некоторого неожиданного поведения я попытался напечатать $_POST и заметил, что Summernote добавляет в него 2 поля - обычное поле формы (в данном случае «описание») и «файлы». Я не обнаружил, что это поведение задокументировано, и я не использую файлы для загрузки внутри или за пределами Summernote, поэтому считаю, что это либо странная ошибка, либо я где-то допустил ошибку. Я мог бы легко обойти эту проблему, но мне просто интересно, если я делаю что-то не так и / или есть ли способ предотвратить это.

Я использую PHP 7.1, BS4 версия Summernote 0.8.15, и я не получаю никаких ошибок консоли.

HTML / PHP:

<div class="form-group">
    <label for="summernote">Description</label>
    <textarea name="description" id="summernote" class="form-control"></textarea>
</div>

...

<?php
    if(!empty($_POST))
    {
        print_r($_POST); //Array ( other fields... [description] => test [files] => )
    }
?>

JS:

$('#summernote').summernote({
    height: 150,
    toolbar: [
        ['style', ['bold', 'italic', 'underline']],
        ['fontsize', ['fontsize']],
        ['color', ['forecolor']],
        ['para', ['ul', 'ol', 'paragraph']]
    ],
    fontSizes: ['14', '16', '18', '20', '24', '28', '32']
});

1 Ответ

1 голос
/ 28 января 2020

Итак, проведя некоторое исследование, похоже, что Summernote по умолчанию отправляет изображения и файлы в формате base64. Ввод с именем 'files' используется, даже если вы не выбрали ни одного изображения или файла, поэтому вы видите переменную files в ваших данных поста.

нашел эти данные во время выполнения поиска:

Упоминание о base64: https://github.com/summernote/summernote/issues/72

Вопрос о том, как не использовать base64: Summernote - URL изображения вместо Base64

Что такое base64? Для чего используется кодировка base 64?

...