在Nodejs(request)中如何发送mutliPart http请求中的文件

我怎样才能发送文件使用MultiPart从Nodejs使用请求?

这将和下面的Curl命令一样:

curl -X POST -F "photos[]=@img.jpg;type=image/jpg" https://example.com 

它创build的Http请求:

 { "json": null, "files": { "photos[]": "data:image/jpg;base64,[Binary] }, "form": {}, "headers": { "Accept": "*/*", "Content-Type": "multipart/form-data; boundary=----------------------------0195fbe0d4ab", "Connection": "close", "Host": "httpbin.org", "Content-Length": "42311", "User-Agent": "curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8x zlib/1.2.5" }, "origin": "23.125.128.191", "data": "", "url": "http://httpbin.org/post", "args": {} } 

简单search“nodejs multipart表单数据”显示: github.com/felixge/node-form-data 。 它甚至适用于请求模块:

 var FormData = require('form-data'); var request = require('request'); var form = new FormData(); form.append('photos[]', request('img.jpg')); form.submit('https://example.com/', function(err, res) { res.resume(); // for node-0.10.x }); 

记住:Node.js已经有很多的OS模块可用,只有search了!