質問編集履歴

1 実行方法「Reshat5.5のターミナルにてコマンドを実行する。」が抜けていました。

siosenbei

siosenbei score 18

2016/02/01 12:52  投稿

curlのエスケープについて
curlでのファイル転送時のファイル名メタ文字エスケープがうまく行きません
curlにて、ファイル転送を行おうとしたら、下記エラーとなり転送できません。
どなたか、解決方法をご教示いただけないでしょうか?
 
※Reshat5.5のターミナルにてコマンドを実行する。  
●コマンド内容と結果
curl --user XXXX:XXXX -F "filedata=@\"test.png\"" http://localhost:7777/upload?/test/uploader/sample
curl: (26) failed creating formpost data
●curlのバージョン
curl 7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
Protocols: tftp ftp telnet dict ldap http file https ftps
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
※実際に転送したいファイルはファイル名にセミコロン(;)がつきます。
(例→ te;st.png)
※下記に用紙ダブルクォーテーションを外すと、転送できます。
curl --user XXXX:XXXX -F filedata=@test.png http://localhost:7777/upload?/test/uploader/sample
※maOSXのcurlでは、期待通り動作しました。(下記は実行macのcurlバージョン)  
curl 7.30.0 (x86_64-apple-darwin13.0) libcurl/7.30.0 SecureTransport zlib/1.2.5  
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp  
Features: AsynchDNS GSS-Negotiate IPv6 Largefile NTLM NTLM_WB SSL libz  
 
 
以上、よろしくお願い致します。
  • Linux

    5970 questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • cURL

    287 questions

    cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る