Я пытаюсь загрузить файл в Zendesk, вот API:
curl "https://{subdomain}.zendesk.com/api/v2/uploads.json?
filename=myfile.dat&token={optional_token}" \
-v -u {email_address}:{password} \
-H "Content-Type: application/binary" \
--data-binary @file.dat -X POST
Вот так выглядит мой код, пока файл File object
Я получаю из дропзоны:
const formData = new FormData();
formData.append("file", file);
fetch(
"https://{my-domain}.zendesk.com/api/v2/uploads.json?filename=" + file.name,
{
method: "POST",
body: formData
}
)
Проблема в том, что окончательный файл поврежден из-за заголовка и нижнего колонтитула WebKitFormBoundary
.
Это то, что я пробовал:
Установка заголовка "Content-Type: application/binary"
, так как это то, что ожидает API.
Передача файла в выборку body
без FormData
(как есть).
Использование FileReader.readAsBinaryString
перед передачей его телу.
Ни одна из моих попыток не сработала - сервер вернул ошибку, единственный способ создатьфайл с FormData
и без заголовка Content-Type
, но я не нашел способа избавиться от заголовка и нижнего колонтитула WebKitFormBoundary
.
Например:
------WebKitFormBoundaryragq26qGRKa2B9Qg
Content-Disposition: form-data; name="file"; filename="README.md"
Content-Type: text/markdown
------WebKitFormBoundaryragq26qGRKa2B9Qg--