Node.js 节点JS POST多部分/表单数据请求
我想使用multipart/form数据内容类型通过http模块从Node JS发送文件。 二进制编码的问题。 当我尝试发送简单文本文件时,它是正常的:Node.js 节点JS POST多部分/表单数据请求,node.js,character-encoding,multipartform-data,Node.js,Character Encoding,Multipartform Data,我想使用multipart/form数据内容类型通过http模块从Node JS发送文件。 二进制编码的问题。 当我尝试发送简单文本文件时,它是正常的: url: 'some-site.com', method: 'POST', headers: { 'content-type': 'multipart/form-data; boundary=-----BNDRY', 'content-length': 128 }, body: '-------BNDRY\r\ncontent
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.toString(encoding)方法和内容传输编码:encoding头的不同组合,但没有成功。出于某种原因,base64编码也不起作用,我已经用connect bodyParser对其进行了测试,似乎它不关心内容传输编码:base64头在正文中-内容仍然是未编码的base64字符串
我不想使用node或express之类的外部模块来解决我的问题
谢谢。我用
Buffer
而不是String
解决了这个问题,也许可以为未来的用户添加一个解决这个问题的例子?