使用 HapiJS 上传多个文件
Uploading multiple files with HapiJS
我正在尝试在单个请求中将多个文件上传到 Hapi JS 服务器。到目前为止我还没有成功。这是原始请求(取自 w3org 以使过程尽可能简单)。
Content-Type: multipart/form-data; boundary=AaB03x
--AaB03x
Content-Disposition: form-data; name="submit-name"
Larry
--AaB03x
Content-Disposition: form-data; name="files"
Content-Type: multipart/mixed; boundary=BbC04y
--BbC04y
Content-Disposition: file; filename="file1.txt"
Content-Type: text/plain
... contents of file1.txt ...
--BbC04y
Content-Disposition: file; filename="file2.gif"
Content-Type: image/gif
Content-Transfer-Encoding: binary
...contents of file2.gif...
--BbC04y--
--AaB03x--
这是Hapi端的handler配置:
path: '/1.1/playbacks/new',
method: 'POST',
config: {
payload: {
maxBytes: 209715200,
output: 'file',
parse: true
},
auth: 'token'
}
当我调试 request.payload 时,我只看到两个字段,"files" 和 "submit-name",文件字段包含 --BbC04y 边界之间的所有内容,即“--BbC04y\r\nContent-Disposition: 文件;文件名="file1.txt"\r\nContent-Type: text/plain\r\n...--BbC04y--"
那么Hapi JS上传多个文件的正确方法是什么?
取自w3org的样本是错误的!请求应该是这样的:
------WebKitFormBoundaryfXvbZd3ZABBHzmdC
Content-Disposition: form-data; name="name"
123456
------WebKitFormBoundaryfXvbZd3ZABBHzmdC
Content-Disposition: form-data; name="last"
789000
------WebKitFormBoundaryfXvbZd3ZABBHzmdC
Content-Disposition: form-data; name="upload1"; filename="test1"
Content-Type: application/octet-stream
file 1
------WebKitFormBoundaryfXvbZd3ZABBHzmdC
Content-Disposition: form-data; name="upload2"; filename="test2"
Content-Type: application/octet-stream
file 2
------WebKitFormBoundaryfXvbZd3ZABBHzmdC--
请注意,不需要不同的边界值。都是一样的。
在神器的帮助下搞定了http://requestb.in
我正在尝试在单个请求中将多个文件上传到 Hapi JS 服务器。到目前为止我还没有成功。这是原始请求(取自 w3org 以使过程尽可能简单)。
Content-Type: multipart/form-data; boundary=AaB03x
--AaB03x
Content-Disposition: form-data; name="submit-name"
Larry
--AaB03x
Content-Disposition: form-data; name="files"
Content-Type: multipart/mixed; boundary=BbC04y
--BbC04y
Content-Disposition: file; filename="file1.txt"
Content-Type: text/plain
... contents of file1.txt ...
--BbC04y
Content-Disposition: file; filename="file2.gif"
Content-Type: image/gif
Content-Transfer-Encoding: binary
...contents of file2.gif...
--BbC04y--
--AaB03x--
这是Hapi端的handler配置:
path: '/1.1/playbacks/new',
method: 'POST',
config: {
payload: {
maxBytes: 209715200,
output: 'file',
parse: true
},
auth: 'token'
}
当我调试 request.payload 时,我只看到两个字段,"files" 和 "submit-name",文件字段包含 --BbC04y 边界之间的所有内容,即“--BbC04y\r\nContent-Disposition: 文件;文件名="file1.txt"\r\nContent-Type: text/plain\r\n...--BbC04y--"
那么Hapi JS上传多个文件的正确方法是什么?
取自w3org的样本是错误的!请求应该是这样的:
------WebKitFormBoundaryfXvbZd3ZABBHzmdC
Content-Disposition: form-data; name="name"
123456
------WebKitFormBoundaryfXvbZd3ZABBHzmdC
Content-Disposition: form-data; name="last"
789000
------WebKitFormBoundaryfXvbZd3ZABBHzmdC
Content-Disposition: form-data; name="upload1"; filename="test1"
Content-Type: application/octet-stream
file 1
------WebKitFormBoundaryfXvbZd3ZABBHzmdC
Content-Disposition: form-data; name="upload2"; filename="test2"
Content-Type: application/octet-stream
file 2
------WebKitFormBoundaryfXvbZd3ZABBHzmdC--
请注意,不需要不同的边界值。都是一样的。
在神器的帮助下搞定了http://requestb.in