Я пытаюсь понять, что Filepond загружает на мой метод сервера, и я столкнулся с чем-то действительно запутанным.Я использую только серверный метод process
и тестирую по одному файлу за раз.Вот мое определение Filepond (это реагирует на машинопись)
<FilePond
ref={this.pond}
allowMultiple={true}
maxFiles={3}
instantUpload={false}
onupdatefiles={(files) => this.setState({files: files})}
files={this.state.files}
// @ts-ignore
server={{
process: this.getProcessUrl(),
revert: null,
fetch: null,
load: null,
restore: null,
}}/>
files
определено для объекта состояния как any[]
.Мы вручную запускаем загрузку, вызывая processFiles()
через элемент ref, который хранит компонент.getProcessUrl
создает ServerUrl
для FilePond на основе идентификатора, сгенерированного в другом месте страницы, и дает ему заголовок аутентификации для передачи.По сути, server.process
выглядит так:
{
url: "http://server/api/1234/upload",
method: "POST",
headers: {"Authorization": "foo"}
}
Когда загрузка запускается с добавлением одного файла (с помощью перетаскивания, если это имеет значение, мне кажется, я не проверялэто с просмотром) если я смотрю на state.files
есть один элемент в массиве.Однако то, что Filepond отправляет на мой сервер, выглядит следующим образом:
------WebKitFormBoundary1YHKxKgBU2cvURKi
Content-Disposition: form-data; name="filepond"
{}
------WebKitFormBoundary1YHKxKgBU2cvURKi
Content-Disposition: form-data; name="filepond"; filename="test.csv"
Content-Type: text/csv
------WebKitFormBoundary1YHKxKgBU2cvURKi--
Обратите внимание на дополнительные данные формы с именем filepond, которые отправляются первыми.
Я смотрел надокументация, и неясно, как будет выглядеть фактическое тело сообщения в этом случае, если не считать, что я ожидаю составные данные формы, поэтому я не понимаю, что вижу.Это дополнительный фрагмент данных формы должен быть там, и мой код сервера должен просто игнорировать его или что?
Спасибо.