curl 更改 multipart/form-data 路径参数

Posted

技术标签:

【中文标题】curl 更改 multipart/form-data 路径参数【英文标题】:Curl changes multipart/form-data path parameter 【发布时间】:2019-03-07 12:16:33 【问题描述】:

我尝试在 msys shell 中使用 curl 将一些 multipart/form-data 数据发送到名为 Synology 的 NAS。 form-data 需要一个名为“path”的参数,并且必须像“/dir/dir2”一样格式化。斜线无法更改。 我的问题是,当我使用 curl 时,路径变量将更改为“C:/git-sdk-64/dir/dir2”,我不知道如何防止它。我的命令如下所示:

curl -X POST \
  'http://url:port/webapi/entry.cgi?_sid=secret&api=SYNO.FileStation.Upload&method=upload&version=2' \
  -F "path=/dir/dir2" \
  -F 'overwrite=true' \
  -F 'filename=@/c/Temp/test.txt'

【问题讨论】:

curl 不会改变路径,其他东西会这样做。您可能在使用 msys 吗?众所周知,在尝试“乐于助人”时会做这些事情。 好的。这是我可以开始的一些好信息。我是这个 bash 和 shell 世界的新手。我必须使用 msys。没有其他我可以使用的。 另见***.com/questions/44700461/… 【参考方案1】:

感谢Daniel Stenberg's 信息,我发现这是 msys self 的“问题”。 Msys 填充路径变量。写在这里http://www.mingw.org/wiki/Posix_path_conversion。解决方案是在路径末尾放置一个分号。完整的命令现在看起来像这样:

curl -X POST \
  'http://url:port/webapi/entry.cgi?_sid=secret&api=SYNO.FileStation.Upload&method=upload&version=2' \
  -F "path=/dir/dir2;" \
  -F 'overwrite=true' \
  -F 'filename=@/c/Temp/test.txt'

【讨论】:

以上是关于curl 更改 multipart/form-data 路径参数的主要内容,如果未能解决你的问题,请参考以下文章

带文件的表单提交

文件上传和下载

如何上传文件数组?

Gin框架之文件上传

python: html

现代软件工程第六次作业