【问题标题】:Node JS POST multipart/form-data request节点 JS POST 多部分/表单数据请求
【发布时间】:2013-07-20 05:12:51
【问题描述】:

我想使用 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 模块)发送类似 JPG 的内容并将 Buffer 转换为请求正文的字符串时,它会失败。我尝试了 Buffer.toString(encoding) 方法和 content-transfer-encoding: encoding 标头的不同组合,但没有成功。出于某种原因,base64 编码也不起作用,我用 connect bodyParser 对其进行了测试,似乎它不关心正文中的 content-transfer-encoding: base64 标头 - 内容仍然以未解码的 base64 字符串形式出现。

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

谢谢。

【问题讨论】:

    标签: node.js character-encoding multipartform-data


    【解决方案1】:

    我通过使用Buffer 而不是String 解决了这个问题

    【讨论】:

    • 也许可以添加一个示例,说明您如何为未来的用户解决它?
    猜你喜欢
    • 2012-11-27
    • 2017-10-05
    • 1970-01-01
    • 2017-08-19
    • 2014-09-08
    • 1970-01-01
    • 2016-06-29
    • 2017-03-13
    相关资源
    最近更新 更多