【发布时间】:2016-02-03 14:27:38
【问题描述】:
我一直在使用 cURL 成功地与基于 Flash 的网页交互以提取数据,但是现在我正在尝试使用该站点的上传功能来提供文件。对于工作请求,我会分解使用 Chrome 开发者工具发出的请求并在 cURL 中重新创建它们。但是当我尝试上传文件时,我收到 {"error":"no file provided"} 的 JSON 响应。
从开发工具中提取的代码格式不起作用:
curl "<URL>" -H "Origin: <URL>" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: en-US,en;q=0.8" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36" -H "Content-Type: multipart/form-data; boundary=----pluploadboundary1454508647816" -H "Accept: */*" -H "Referer: <URL>" -H "X-Requested-With: ShockwaveFlash/20.0.0.286" -H "Connection: keep-alive" -H "DNT: 1" --data-binary "------pluploadboundary1454508647816"^"Content-Disposition: form-data; name=""name"""^"unblock_User.xls"^"------pluploadboundary1454508647816"^"Content-Disposition: form-data; name=""file""; filename=""unblock_User.xls"""^"Content-Type: application/vnd.ms-excel"^
我尝试将其更改为使用标准 --data-binary=@file 其中@file 包含文件的边界和原始二进制数据,但无济于事。该文件的内容是:
-----pluploadboundary1453998534666
内容配置:表单数据;名称=“名称”
unblock_once.xlsx
-----pluploadboundary1453998534666
内容配置:表单数据;名称=“文件”;文件名="unblock_once.xlsx"
内容类型:application/vnd.ms-excel
通过将二进制文件'cat'到本节,原始数据将在此处,我可以在此处使用文件路径吗?
-----pluploadboundary1453998534666--
【问题讨论】: