wgetでファイルをアップロードする

–post-file=xxxx
のオプションを付けれやればファイルのアップロードが可能です。
何点か注意しなければならない点があります。

まず、boundaryというHTMLのボディとアップロードファイル・アップロードデータ分けるセパレーターを指定する必要があります。
そしてこのboundaryの値と、アップロードファイル内の値は微妙に異なります。
wgetでboundary=aaaaaと設定した場合
ファイル内では

--aaaaa
(内容)
--aaaaa--

と設定する必要があります。

また、アップロードするファイル内では、ヘッダー要素とボディー要素の間に改行を入れておく必要がります。

以下実際の使用例です。

# wget http://test/uploadfile.php --header="Content-Type: multipart/form-data; boundary=aaaaa" --post-file=post.txt

# cat post.txt //アップロードするファイルのサンプル
--aaaaa
Content-Disposition: form-data; name="file"; filename="post.txt"
Content-Type: text/plain
★ここに改行が必要
(アップロードするファイルの内容)
--aaaaa--
タイトルとURLをコピーしました