我可以看到 wget 有一个--post-file选项,但联机帮助页说
Wget 目前不支持 multipart/form-data 传输 POST 数据;只有应用程序/x-www-form-urlencoded。只应指定
--post-data和之一--post-file。
有没有类似的方法可以在 multipart/form-data 中上传文件?
Tob*_*obu 31
使用卷曲:
curl -F "file=@localfile;filename=nameinpost" url.com
Run Code Online (Sandbox Code Playgroud)
tu-*_*duh 19
仅使用 wget 就可以做到这一点。至少在版本 1.13.4 和其他版本中。--post-file 选项允许您指定要发送的文件,只要 postdata 文件构造正确。
我还用二进制文件对此进行了测试,它按预期工作。您不需要对文件进行 base64 编码,但您需要确保您的文件不包含边界。
使这项工作所需的最低命令是:
wget --header="Content-type: multipart/form-data boundary=FILEUPLOAD" --post-file postfile http://domain/uploadform
Run Code Online (Sandbox Code Playgroud)
并且 postdata 文件需要包含以下内容:
--FILEUPLOAD
Content-Disposition: form-data; name="comment"
I love uploading files!
--FILEUPLOAD
Content-Disposition: form-data; name="uploadFile"; filename="myfile.bin";
Content-Type: application/octet-stream
Media Type: application/octet-stream
Give me some automated file upload action!
--FILEUPLOAD--
Run Code Online (Sandbox Code Playgroud)
一些细节在这里很重要:
我认为这可能对某人有所帮助,因为某些受控环境有 wget 但没有 curl。
| 归档时间: |
|
| 查看次数: |
108002 次 |
| 最近记录: |