2016-11-28 10 views
4

私は特定のタスクを持っています:ソースURLから画像をダウンロードし、multipart/form-dataとしてPOST要求を介して別のホストにアップロードする必要があります。私はnode.jsリクエストライブラリを使用しようとしていますが、成功することはありません。 次のコードはリクエスト本文に何も送信しません。npm requestを使用してフォームデータとして画像をPOSTする方法は?

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

関連する問題