Cli curl
を使用してyes, this filename has a comma.txt
という名前のファイルをアップロードするにはどうすればよいですか?
通常、これを行ってcurl
を含むファイルをアップロードします。
curl --progress-bar -F "[email protected]"
ただし、curl
はカンマをアップロードする複数のファイルとして解釈するため、これは機能しません。
curl --progress-bar -F "fileUpload=@yes, this filename has a comma.txt"
ファイル名をエスケープするにはどうすればよいですか?
元のファイルへの一時的なシンボリックリンクを作成し、それをcurlに渡すことで、回避策をすでに見つけました。ただし、問題は、curl
がサーバーに送信するファイル名が、元のファイルではなく、シンボリックリンクのファイル名であるということです。
使用しているOSをまだ言っていません。次のソリューションは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"