我正在尝试通过 Fiddler 将 jpeg 文件发布到本地开发的 Web 服务。这很简单,但我还需要在文件旁边包含一些数据,并且 can\xe2\x80\x99t 完全确定 fiddler 想要的语法。如果我单击上传文件按钮并选择要上传的文件,它会将我的 POST 正文替换为:
\n\n---------------------------acebdf13572468\nContent-Disposition: form-data; name="fieldNameHere"; filename="PantheraLeo.jpg"\nContent-Type: image/jpeg\n\n<@INCLUDE *C:\\temp\\PantheraLeo.jpg*@>\n---------------------------acebdf13572468\xe2\x80\x94\nRun Code Online (Sandbox Code Playgroud)\n\n现在我想添加一些额外的数据:
\n\nuser=1&album=2&photo=[OUTPUT FROM FILE UPLOAD]\nRun Code Online (Sandbox Code Playgroud)\n\n我\xe2\x80\x99ve尝试将其放在正文的开头,但是当我的Node应用程序收到请求时,我\xe2\x80\x99m获取用户参数、相册参数但没有照片。
\n\n关于如何格式化此请求以获取参数和作为照片参数上传的照片有什么想法吗?
\n我自己也一直在寻求做类似的事情,并偶然发现了你的问题。经过一番使用 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--
Run Code Online (Sandbox Code Playgroud)
您似乎将请求正文中发送的表单数据链接到 POST 信息中的“acebdf13572468”边界。为 Content-Disposition 提供一个键名称(在我的例子中为“model”),然后下面的行代表该键的实际值。(在我的例子中是“MyModelInfo”。
使用上面的请求正文,我能够将文件以及一些附带的 POST 数据发布到我的 API。