Как использовать Filepond с формой PHP и прикреплять файлы к сообщению

Я использую Filepond с фреймворком Laravel.

Мне нужно отправить файл, связанный со статьей.

HTML-код:

<form action="submit.php" enctype="multipart/form-data" method="POST">
      <input type="hidden" name="post_id" value="2" />
      <input type="file" class="filepond" name="filepond" data-max-files="1"/>
      <input type="submit" value="Upload" name="submit" class="btn btn-info" />
</form>

<script>
    // get a reference to the input element
    const inputElement = document.querySelector('input[type="file"]');

    // create a FilePond instance at the input element location
    const pond = FilePond.create( inputElement, {
        maxFiles: 1,
        allowBrowse: false,
        instantUpload: false,
    });
</script>

Как я могу использовать кнопку формы отправки, чтобы загрузить свои файлы и получить $_POST['post_id']?


person Valentin    schedule 25.09.2019    source источник


Ответы (1)


К сожалению, это невозможно в большинстве браузеров, потому что значение поля ввода файла не может быть установлено.

Чтобы обойти это ограничение, вы можете:

  • Загрузите файл асинхронно (используя свойство FilePond server.process)
  • Закодируйте файл как данные base64 (используя плагин кодирования FilePond)
  • Используйте объект DataTransfer, чтобы установить входное значение файла (на данный момент это работает только в Chrome / Firefox)

Для получения дополнительной информации о решении DataTransfer см .: https://pqina.nl/blog/the-trouble-with-editing-and-uploading-files-in-the-browser/

person Rik    schedule 30.09.2019