Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 节点JS POST多部分/表单数据请求_Node.js_Character Encoding_Multipartform Data - Fatal编程技术网

Node.js 节点JS POST多部分/表单数据请求

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

我想使用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-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

解决了这个问题,也许可以为未来的用户添加一个解决这个问题的例子?