2016-11-28 3 views
4

У меня есть конкретная задача: мне нужно загрузить изображение с исходного URL-адреса и загрузить его на другой хост через POST-запрос как multipart/form-data. Я пытаюсь использовать библиотеку запросов node.js, но никогда не получится. Следующий код не отправляет ничего в тело запроса.Как изображение POST как данные формы с использованием запроса npm?

request.post({ 
    url: uploadUrl, 
    formData: { 
    photo: request(imageUri) 
    } 
}, function (err) { 
    if (err) console.error(err.stack) 
}); 

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

+0

Вам нужно подождать, пока вы не получите данные изображения для отправки в данные формы. После того, как у вас есть фотография из 'request (imageUri)', которая доступна из его параметра обратного вызова, вы можете перейти к основному сообщению. – magreenberg

+0

@magreenberg. Хотя я мог бы это как-то протолкнуть? Вы предлагаете полностью загрузить его в память, а затем опубликовать? – Bolein95

ответ

0

Проблема оказалась в том, что у моего imageUri были параметры запроса. Я думаю, что это ошибка в библиотеке form-data. Удаление параметров запроса решило проблему.

0

Как я уже сказал в своем комментарии, вам нужно подождать, пока у вас есть изображение, чтобы отправить запрос. Если вы хотите протолкнуть потоки, вы можете попробовать что-то вроде этого ...

request.get(imageUri).pipe(request.post(uploadUri)); 

Надеюсь, что это поможет.

+0

Спасибо, но я должен опубликовать изображение как форму-данные – Bolein95

+0

Тогда вам сначала нужно сохранить его локально. – magreenberg

Смежные вопросы