我正在尝试通过 Fiddler 将 jpeg 文件发布到本地开发的 Web 服务。这已经足够简单了,但我还需要在文件旁边包含一些数据,并且不能完全确定 fiddler 想要的语法。如果我单击上传文件按钮并选择要上传的文件,它会将我的 POST 正文替换为:
---------------------------acebdf13572468
Content-Disposition: form-data; name="fieldNameHere"; filename="PantheraLeo.jpg"
Content-Type: image/jpeg
<@INCLUDE *C:\temp\PantheraLeo.jpg*@>
---------------------------acebdf13572468—
现在我想添加一些额外的数据:
user=1&album=2&photo=[OUTPUT FROM FILE UPLOAD]
我试过将它放在正文的开头,但是当我的 Node 应用程序收到请求时,我得到了一个用户参数和一个相册参数,但没有照片。
关于如何格式化此请求以同时获取参数和作为照片参数上传的照片,有什么想法吗?
最佳答案
我自己也一直想做类似的事情,但偶然发现了您的问题。在对 Fiddler 进行了一番折腾之后,我刚刚设法实现了我所需要的。试试这个:
---------------------------acebdf13572468
Content-Disposition: form-data; name="model"
MyModelInfo
---------------------------acebdf13572468
Content-Disposition: form-data; model="test123"; filename="123.gif"
Content-Type: image/gif
<@INCLUDE *Z:\Downloads\123.gif*@>
---------------------------acebdf13572468--
您似乎将请求正文中发送的表单数据链接到 POST 信息中的“acebdf13572468”边界。为 Content-Disposition 提供键名(在我的例子中为“model”),然后下一行表示您为此键的实际值。 (在我的例子中是“MyModelInfo”。
使用上面的请求主体,我能够将文件以及一些随附的 POST 数据发布到我的 API。
关于使用 fiddler 将 JPEG 文件与其他 body 数据一起发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30841203/