【问题标题】:Node.js - generate multipart/form-dataNode.js - 生成多部分/表单数据
【发布时间】:2021-02-24 03:04:38
【问题描述】:

是否有 Node.js 库用于生成以下形式的 multipart/form-data 内容?

------------------------------7a9cd2dc11c1
Content-Disposition: form-data; name="to"

destination@email.com
------------------------------7a9cd2dc11c1
Content-Disposition: form-data; name="from"

recipient@email.com
------------------------------7a9cd2dc11c1
Content-Disposition: form-data; name="subject"

subject line
------------------------------7a9cd2dc11c1
Content-Disposition: form-data; name="text"

This content does not matter.
------------------------------7a9cd2dc11c1--

【问题讨论】:

标签: node.js multipartform-data


【解决方案1】:

fermata 看起来可能就是您要找的东西。来自github页面:

fermata.json("http://example.com/some/action").post({
  'Content-Type':"multipart/form-data"
}, {
  fileField: form.input.file || {data:nodeBuffer, name:"", type:""}
}, callback)

【讨论】:

【解决方案2】:

request 支持multipart/form-data 或者如果您只是想创建内容主体,请尝试form-data

【讨论】:

  • 如果我们想发送相同的请求。我们将如何发送?我已经尝试过请求模块。 stackoverflow.com/questions/51274505/...请帮助
【解决方案3】:

我知道这是旧的,但我最近需要生成一个表单的 multipart/form-data 正文字符串并遇到了这个线程。

我找不到任何以简单方式执行此操作的模块,因此我制作了自己的模块:https://github.com/kodie/form-data-body

你可以这样使用它:

const formDataBody = require('form-data-body')

// Specify form fields
const fields = {
  name: 'My test post',
  description: 'This is just a test post',
  items: ['First Item', 'Second Item'],

  // Files should be an object with the name, type, and data set to strings
  image: {
    name: 'hello.jpg',
    type: 'image/jpeg',
    data: binaryImageData
  }
}

const boundary = formDataBody.generateBoundary()
const header = {
  'Content-Type': `multipart/form-data; boundary=${boundary}`
}
const body = formDataBody(fields, boundary)

示例输出:

----------------------------071517909670537006900435
Content-Disposition: form-data; name="name"

My test post
----------------------------071517909670537006900435
Content-Disposition: form-data; name="description"

This is just a test post
----------------------------071517909670537006900435
Content-Disposition: form-data; name="items[]"

First Item
----------------------------071517909670537006900435
Content-Disposition: form-data; name="items[]"

Second Item
----------------------------071517909670537006900435
Content-Disposition: form-data; name="image"; filename="hello.jpg"
Content-Type: image/jpeg

[BINARY IMAGE DATA]
----------------------------071517909670537006900435--

【讨论】:

    猜你喜欢
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    相关资源
    最近更新 更多