我需要在一个请求中将客户端页面的图像数据(作为数组缓冲区读取)以及页面生成的其他字符串/ json信息一起发送到NodeJS服务器。我需要在一个请求中处理这两部分,因为服务器对图像的进一步处理取决于所发送的字符串/ json。通过客户端发送那些邮件然后通过服务器解析它们以使其符合那些条件的方法有哪些?
您正在寻找的是使用FormData的多部分请求。
FormData可用作获取中的body
,并支持Blob。一个例子是这样的:
var binary = new Uint8Array(2)
binary[0] = 65
binary[1] = 66
var fd = new FormData()
fd.append('json_data', JSON.stringify({a: 1, b: 2}))
fd.append('binary_data', new Blob([binary.buffer]))
fetch('https://example.com/receive', {
method: 'POST',
body: fd
}).then(console.log)
Note:如果您在服务器上使用express
,请注意bodyparser
可以not处理多部分实体!
bodyparser的替代方法是multer
,connect-busboy
或multiparty
。
如果使用express.js,则可以使用multer
从他们的文档:
var express = require('express')
var multer = require('multer')
var upload = multer({ dest: 'uploads/' })
var app = express()
app.post('/profile', upload.single('avatar'), function (req, res, next) {
// req.file is the `avatar` file
// req.body will hold the text fields, if there were any
})