Answers:
只能使用wget进行此操作。至少在1.13.4版本中,也许在其他版本中。--post-file选项允许您指定要发送的文件,只要正确构造了postdata文件即可。
我还用二进制文件对此进行了测试,它可以按预期工作。您不需要对文件进行base64编码,但是您需要确保文件不包含边界。
进行此工作所需的最低命令为:
wget --header="Content-type: multipart/form-data boundary=FILEUPLOAD" --post-file postfile http://domain/uploadform
并且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--
这里有许多细节很重要:
我认为这可能会对某人有所帮助,因为某些受控环境具有wget但没有卷曲。
cat pic.jpg >> postdata
,加载到Notepad ++中,并附加了最后一个边界+'-'+ EOL。W3C参考