我如何上传yes, this filename has a comma.txt
以 cli命名的文件curl
?
您通常会这样做来上传文件curl
:
curl --progress-bar -F "[email protected]"
但是curl
将逗号解释为要上传的多个文件,因此这将不起作用:
curl --progress-bar -F "fileUpload=@yes, this filename has a comma.txt"
我怎样才能转义文件名?
我已经找到了一种解决方法,即创建指向原始文件的临时符号链接并将其传递给 curl。但问题是curl
发送到服务器的文件名是符号链接的文件名,而不是原始文件的文件名。
答案1
你没有说你使用的是什么操作系统。以下解决方案适用于 Linux(不仅适用于curl
大多数类型的逃跑):
将文件名放在引号中(您也需要对其进行转义):
curl --progress-bar -F "fileUpload=@\"yes, this filename has a comma.txt\""
转义逗号
curl --progress-bar -F "fileUpload=@yes\, this filename has a comma.txt"
答案2
这对我有用。apk 文件中有空格。
#!/bin/bash
API_TOKEN="____"
ARTIFACT_PATH=$(find $2 -name *.ipa -o -name *.apk)
curl https://upload.diawi.com/ \
-F token=${API_TOKEN} \
-F file=@"${ARTIFACT_PATH}" \
-F callback_emails='[email protected]'