Carregue um arquivo com uma vírgula em seu nome com curl

3

Como posso fazer upload de um arquivo chamado yes, this filename has a comma.txt com o cli curl ?

Você normalmente faria isso para enviar um arquivo com curl :

curl --progress-bar -F "[email protected]"

No entanto, curl interpreta vírgulas como vários arquivos para upload, então isso não funcionará:

curl --progress-bar -F "fileUpload=@yes, this filename has a comma.txt"

Como posso escapar do nome do arquivo?

Já encontrei uma solução alternativa criando um link simbólico temporário para o arquivo original e passando isso para enrolar. No entanto, o problema é que o nome do arquivo que curl envia para o servidor é o nome do arquivo do link simbólico, não o arquivo original.

    
por Tyilo 01.05.2013 / 18:36

1 resposta

4

Você não disse qual sistema operacional está usando. As soluções a seguir funcionam para o Linux (não apenas para curl , mas para a maioria dos tipos de escape :

  • Coloque o nome do arquivo entre aspas (você também precisa escapar):

    curl --progress-bar -F "fileUpload=@\"yes, this filename has a comma.txt\"" 
    
  • Escape da vírgula

    curl --progress-bar -F "fileUpload=@yes\, this filename has a comma.txt" 
    
por 01.05.2013 / 18:52