curl --upload-file を使用してファイル名を指定します。

curl --upload-file を使用してファイル名を指定します。

curl'オプションを使用してファイルをアップロードするときに、--upload-fileディスク上のファイル名とは異なるファイル名をどのように指定できますか?この-Fオプションを使用すると、次のことができると思いますが(また)をcurl -F 'file=@/path/to/file/badname;filename=goodname'使用して同等の操作を実行する方法がわかりません。アップロードされたファイルに特定のファイル名が必要なAPIを使用していますが、正しくアップロードできるようにファイルをディスクにコピーしたくありません。--upload-file-T

答え1

この試み:

カールURL>/良い名前- ファイルをアップロードする無効なファイル名

例:

curl http://example.com/goodname.html --upload-file badfilename.html

私はこれを試して、次goodname.htmlのファイルを正常にアップロードしました。 :)

答え2

curl -v --user 'ユーザー名:パスワード' --upload-file {パス}/{binaire} {your_url}/{binaire}

答え3

--form(-F)オプションを指定してPOSTメソッドを使用してファイルをアップロードすると、カールはmultipart / form-dataコンテンツタイプを使用します。

POST /test.html HTTP/1.1
Host: example.org
Content-Type: multipart/form-data;boundary="boundary"

--boundary
Content-Disposition: form-data; name="field1"

value1
--boundary
Content-Disposition: form-data; name="field2"; filename="example.txt"

value2
--boundary--

ご覧のとおり、ファイル名を入力できるスペースがあります。ただし、--upload-file(-T)を使用すると、カールはPUTメソッドを使用し、要求本文には固有のファイル本文のみが含まれるため、そのような場所はありません。

PUT /test.html HTTP/1.1
Host: example.org

file content

ここで唯一のファイル名はURL自体です:test.html

答え4

--url次のようにカールのオプションを使用します。

curl --upload-file /path/to/file/badname --url http://serverip/remotedir/goodname

関連情報