使用curl --upload-file指定文件名

使用curl --upload-file指定文件名

curl使用's选项上传文件时--upload-file,如何指定与磁盘上的文件名不同的文件名?使用该-F选项,我认为可以这样做:curl -F 'file=@/path/to/file/badname;filename=goodname',但我不确定如何使用--upload-file(also -T) 进行等效操作。我正在使用一个 API,它要求上传的文件具有特定的文件名,但我不想将文件复制到磁盘上,这样我就可以正确上传它。

答案1

尝试这个:

卷曲网址>/好名字- 上传文件错误的文件名

例子:

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

我尝试了这个并成功上传了一个名为goodname.html:)的文件

答案2

curl -v --user '用户名:密码' --upload-file {path}/{binaire} {your_url}/{binaire}

答案3

当您使用 POST 方法和 --form (-F) 选项上传文件时,curl 使用 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)时,curl将使用PUT方法,并且不会有这样的地方,因为请求的主体将仅包含唯一的文件主体:

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

file content

这里唯一的文件名是 URL 本身:test.html

答案4

--url像这样使用curl的选项:

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

相关内容