回答:
wgetでのみこれを行うことができます。少なくともバージョン1.13.4とおそらく他のもので。--post-fileオプションを使用すると、postdataファイルが適切に構築されている限り、送信するファイルを指定できます。
また、これをバイナリファイルでテストしましたが、期待どおりに機能します。ファイルをbase64でエンコードする必要はありませんが、ファイルに境界が含まれていないことを確認する必要があります。
この作業を行うために必要な最小限のコマンドは次のとおりです。
wget --header="Content-type: multipart/form-data boundary=FILEUPLOAD" --post-file postfile http://domain/uploadform
また、ポストデータファイルには次のようなものが含まれている必要があります。
--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はあるがcurlはないので、これは誰かの助けになると思った。
cat pic.jpg >> postdata
、Notepad ++にロードし、最後の境界+ '-' + EOLを追加しました。W3Cリファレンス