2017-04-06 20 views
0

外部のサービスに画像を投稿する必要があります。Node.jsファイルのアップロードが機能しない

アップロードを手動でテストするためにPostmanのようなクライアントを使用すると、完全に機能します。

POSTを作成し、画像にform-dataとキーPictureというボディを指定するだけです。 POST request with Postman

ノードアプリケーションから投稿しても動作しません。私は要求を処理するためにrequestモジュールを使用しています。それは私がエラーに関する詳細な情報を得ることができない外部のサービスですので

const formData = { Picture: fs.createReadStream('./path/to/image') } 

request.post({url: "http://example.com", formData: formData}, function(err, res, body) { 
    console.log(body) 
} 

ログが{"Code":400,"Exception":"The file failed to upload.}氏は述べています。

私は郵便配達員とのリクエストを複製するだけです。 どうやったらいいですか?私はどのモジュールをリクエストに使うかは気にしません。

+0

APIの使用状況は問題なく表示されていますが、私には見逃してしまうものがあります。おそらくサーバーは「User-Agent」などの特定のヘッダーをチェックしていますか?正確に何が見つからないかを見つけるまで、Postmanリクエストをより正確に複製してみてください。 – mscdex

答えて

0

ファイルを送信するたとえば、ポストアクション用のストリームを使用することを検討してください:

const options = { 
    method: 'POST', 
    url: "www.someurl.com" 
}; 
const req = request(options, callback); 
const form = req.form(); 
form.append('image', fs.createReadStream(file_path)); 

それはreadアクションが終了する前に、あなたがファイルを送信していることは可能ですか?

関連する問題