我正在尝试将单个请求中的多个文件上传到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方面的处理程序配置:
path: '/1.1/playbacks/new',
method: 'POST',
config: {
payload: {
maxBytes: 209715200,
output: 'file',
parse: true
},
auth: 'token'
}
当我调试request.payload时,我只看到两个字段,"文件"和"提交名称"文件字段包含--BbC04y边界之间的所有内容,即" - BbC04y \ r \ nConContent-Disposition:file; filename =" file1.txt" \ r \ nConContent-Type:text / plain \ r \ n ...-- BbC04y - "
那么将多个文件上传到Hapi JS的正确方法是什么?
答案 0 :(得分:0)
取自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
获得它