2013-07-21 58 views
2

我想通过使用multipart/form-data内容类型的http模块从节点JS发送文件。 二进制编码的问题。 这是确定的,当我尝试发送简单的文本文件:节点JS POST多部分/表单数据请求

url: 'some-site.com', 
method: 'POST', 
headers: 
{ 
    'content-type': 'multipart/form-data; boundary=-----BNDRY', 
    'content-length': 128 
}, 
body: '-------BNDRY\r\ncontent-type: text/plain\r\ncontent-disposition: form-data; name="file"; filename="file.txt"\r\n\r\ntest\r\n-------BNDRY--' 
} 

但是,当我试图读取文件(例如,通过FS modile)后,发送类似JPG和翻译缓冲区,以字符串请求主体它失败。我尝试了Buffer.toString(编码)方法和content-transfer-encoding:编码标头的不同组合,但没有成功。出于某种原因,base64编码不起作用,我用连接bodyParser测试了它,似乎并不在乎content-transfer-encoding:base64正文中的标头 - 内容仍然是未解码的base64字符串。

而且我不想使用像node-formidable或express这样的外部模块来解决我的问题。

谢谢。

回答

-1

我用Buffer代替String

+2

或许添加你如何解决它的未来用户的例子来解决呢? – jamietelin

相关问题