当前位置: 首页 > 知识库问答 >
问题:

用HapiJS上载多个文件

闾丘昊然
2023-03-14

我正在尝试在一个请求中上传多个文件到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时,我只看到两个字段,“files”和“submit-name”,其中files字段包含--bbc04y边界之间的所有内容,即“--bbc04y\r\ncontent-disposition:file;fileName=”file1.txt“\r\ncontent-type:text/plain\r\n...--bbc04y--”

那么上传多个文件到Hapi JS的正确方法是什么呢?

共有1个答案

林冥夜
2023-03-14

取自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的帮助下得到了它

 类似资料:
  • 有没有办法用Flask接收多个上传的文件?我尝试了以下方法: 然后打印的内容: 如果我上载多个文件,它只打印集合中的第一个文件: 有没有一种方法可以使用Flask的内置上传处理来接收多个文件?谢谢你的帮助!

  • 我想在一个POST请求中上传多个图像。目前,我的请求中与文件上传相关的部分正在获取一个文件,如下所示: 这很好用。现在,我尝试更改解码为,并对所有文件执行循环 尝试使用Postman中的参数上传图像时,出现以下错误: 不支持嵌套表单数据解码。 如何解决此问题?

  • 用PySimpleGUI一次可以选择多个文件路径吗 只能选择一个文件 null 没有循环模式的多个文件的任何API?

  • 问题内容: 我需要处理分散在各个目录中的多个文件。我想将所有这些加载到单个RDD中,然后在其上执行map / reduce。我看到SparkContext能够使用通配符从单个目录加载多个文件。我不确定如何从多个文件夹加载文件。 以下代码段失败: 这在第三个循环中失败,并显示以下错误消息: 鉴于我仅提供了两个参数,所以这很奇怪。任何指针表示赞赏。 问题答案: 措辞如何呢? 在Scala中,有两种变体

  • 嗨,我正在尝试使用多部分表单上传多个文件 我使用这个,但我得到了错误的请求状态,我如何上传多个文件?

  • 我得到同样的错误,比如 数组([lpj]= 这是我的控制器 萨米能帮我吗?