我需要在一个请求中从客户端页面发送图像数据(读取为数组缓冲区),以及页面生成的附加字符串/ json信息,将它们发送到NodeJS服务器。 我需要在一个请求中处理这两个部分,因为服务器对附带发送的字符串/ json进行进一步的图像处理。 有哪些方法可以通过客户端发送它们,然后由服务器解析它们,以便满足这些标准?
我需要在一个请求中从客户端页面发送图像数据(读取为数组缓冲区),以及页面生成的附加字符串/ json信息,将它们发送到NodeJS服务器。 我需要在一个请求中处理这两个部分,因为服务器对附带发送的字符串/ json进行进一步的图像处理。 有哪些方法可以通过客户端发送它们,然后由服务器解析它们,以便满足这些标准?
FormData可以作为fetch中的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)
注意:如果您在服务器上使用express
,请注意bodyparser
无法处理多部分主体!
multer
、connect-busboy
或 multiparty
可替代bodyparser。
如果你使用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
})
JSON.parse
/JSON.stringify
应该可以很好地处理类型化数组。 - Bergi