私はCodeIgniterを使用していますが、私はAJAXを使ってアップロードを処理するコントローラを持っています。CodeIgniterと角括弧付きのパラメータ
コントローラはファイルの名前をパラメータとして受け取ることを期待しています。したがって、URLにはほとんどすべての種類の文字を受け入れる必要があります。
マイJavaScriptは "マイ%20file%20%5BX%5D.mpg" となる "[X] .AVIマイファイル" encodeURI()、名前、したがってファイルを使用してファイル名をエンコードします。これまでのところすべて素晴らしい。
このパラメータをCodeIgniterに渡すと問題が発生します。 URLは http://localhost/myproject/uploader/upload/My%20file%20%5BX%5D.avi
のように見えるとコントローラのヘッダ:私は$ PARAM1を印刷するとき
function upload($param1='') { }
は、私が得た:
string(8) "My_file_"
私はurldecode()を使用する場合でも、それは同じまま。したがって、CodeIgniterは符号化された角括弧を使用しています。どんな助け?
ありがとうございます。
POSTではなくGETを使用している理由は何ですか? – Ross
私はValums Ajax Upload(http://valums.com/ajax-upload/)を使用しています。これは、クエリ文字列でファイル名をparamとして送信する必要があります。 –
あなたの例は間違っています。 encodeURI( "My File [x] .avi")== My%20File%20%5Bx%5D.avi –