我想使用multipart / form-data content-type通过http模块从Node JS发送文件。 二进制编码的问题。 我正在尝试发送简单的文本文件时没关系:
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--'
}
但是当我在文件读取后尝试发送类似JPG的内容(例如通过FS modile)并将Buffer转换为请求体的字符串时,它会失败。我尝试了 Buffer.toString(encoding)方法和 content-transfer-encoding:encoding 标头的不同组合,但没有成功。出于某种原因,base64编码也不起作用,我已经使用connect bodyParser对其进行了测试,似乎它并不关心正文中的 content-transfer-encoding:base64 标题 - 内容仍然来自未编码的base64字符串。
我不想使用node-formidable或express等外部模块来解决我的问题。
感谢。
答案 0 :(得分:-1)
我使用Buffer
代替String