Мой вопрос ... как мне загружать файлы с помощью FilePond, но по клику, а не автоматически, как это делается из коробки? Кроме того, поскольку мне нужно выполнить ряд других действий с изображениями тезисов (например, отобразить их для просмотра перед загрузкой) и добавить другие данные в отправляемые данные FormData (плюс действия по отправке в Redux).
Обычно я создаю FormObject, добавляю файлы и другие значения к нему перед отправкой его в какую-либо конечную точку (с любыми необходимыми пользовательскими заголовками). Однако, когда я проверял экземпляр FilePond, кажется, что единственное, к чему у меня есть доступ, - это большой двоичный объект, а не реальные файлы. Это точно? Нужно ли мне следовать какой-то специальной методике, специфичной для FilePond, чтобы загрузить файл на работу?
Документы FilePond имеют настраиваемое значение конфигурации, называемое «сервер», которое, по-видимому, имеет доступ к реальному файлу в более сложных примерах, поэтому так ли это должно быть сделано? Я не могу просто взять файлы (откуда-то, чего я сейчас не вижу в экземпляре FilePond) и добавить их к объекту для использования в моем обычном «сервисе»?
Любые советы приветствуются. В приложении React я хочу загружать переменное количество файлов по щелчку мыши после добавления других данных формы и установки заголовков (в идеале с использованием Axios) и помещать эти файлы в API.
Пример из их документов использует проп, например:
server="/api"
Я хочу что-то вроде (поддельный код):
server={submitImages} <-- this should only happen onclick of some button
где:
submitImages = (fieldName, file) => {
const formData = new FormData()
formData.append(fieldName, file, file.name)
formData.append('foo', this.props.foo)
const docuploadresult = this.props.uploadDocs(formData) <-- a service that lives elsewhere and actually does the POST
docuploadresult.then(result => {
// success
}, error => {
// error
})
}
и мои проблемы в том, что я не понимаю, почему это должно происходить в каком-то особом объекте конфигурации, таком как server
, не вижу, как это сделать, щелкаю, нигде не вижу фактического файла.
Может быть, я обдумываю это?