3

我想使用 multipart/form-data 内容类型通过 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--'
}

但是,当我尝试在文件读取后(例如通过 FS modile)发送类似 JPG 的内容并将 Buffer 转换为请求正文的字符串时,它会失败。我尝试了Buffer.toString(encoding)方法和content-transfer-encoding: encoding标头的不同组合,但没有成功。出于某种原因,base64 编码也不起作用,我已经使用 connect bodyParser 对其进行了测试,并且似乎它不关心content-transfer-encoding: base64 header in body - 内容仍然是未解码的 base64 字符串。

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

谢谢。

4

1 回答 1

-3

我通过使用Buffer而不是解决了它String

于 2013-08-26T13:36:19.460 回答