Этот вопрос уже задавали несколько раз, но ни одно из предложенных решений мне не помогло.
Я использую Node.js для загрузки изображений для поста через API.
Создание постов проходит без проблем, но изображения не загружаются.
Я конвертирую изображение (файл PNG) в бинарную строку.
Затем отправляю запрос application/json с учетными данными API в заголовках и полезной нагрузкой следующего вида:
{
type: "composer",
synchronous: true,
file: `${binary_string}`
}
Я пробовал использовать как file в качестве имени поля для файла, как указано в документации API, так и files[], как предложил другой участник форума.
При использовании file я получаю ошибку 422 с сообщением:
undefined method `tempfile' for #<String:0x00007fdfeba2b1d8>
При использовании files[] я получаю ошибку 422 с сообщением “Unprocessable Entity”.
Помимо application/json, как указано в документации, я также пробовал использовать multipart/form-data, как это делает веб-интерфейс и этот участник.
Для отправки через form-data я поступил следующим образом:
const form = new FormData();
form.append("type", "composer");
form.append("synchronous", "true");
form.append("files[]", this.stringToBinary(file.data!), {
contentType: file.mimetype,
});
http.post("/uploads.json", form.getBuffer(), {
headers: form.getHeaders(),
}) // учетные данные добавляются здесь
В этом случае, независимо от использования file или files[], я получаю ошибку 422 с сообщением:
undefined method `tempfile' for #<String:0x00007fdfeba2b1d8>
Может ли кто-нибудь помочь?