Como efetuar upload de arquivo com vírgula em seu nome utilizando o Curl

image_pdfimage_print

Algumas das possível maneiras comuns de efetuar o upload de um arquivo utilizando o curl são:

curl --progress-bar -F "fileUpload=@sim, tenho uma vírgula no nome.drall"
curl --form upload=@"sim, tenho uma vírgula no nome.drall"

No entanto, caso o arquivo tenha vírgula no meio de seu nome, as formas acima irão dar problema, visto que será necessário escapar o nome do arquivo por conta do caracter especial ‘,'(vírgula) em seu nome.

Numa pesquisa muito rápida, parece que o caracter especial ‘,’ para o curl é entendido como indicação de multiplos arquivos, portanto, a vírgula servindo para separar o nome dos arquivos a serem enviados.

Então, para corrigir este problema, basta escapar o nome do arquivo:

curl --progress-bar -F "fileUpload=@\"sim, tenho uma vírgula no nome.drall\""
curl --form "upload=@\"sim, tenho uma vírgula no nome.drall\""

Ou, escapar a vírgula

curl --progress-bar -F "fileUpload=@sim\, tenho uma vírgula no nome.drall"

Caso o arquivo tenha vírgula em seu nome e não seja escapado, o erro mais provável a ocorrer é:
curl: (26) couldn’t open file

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!