Я использую CodeIgniter, и у меня есть контроллер, который обрабатывает загрузки с помощью AJAX.CodeIgniter и params с квадратными скобками
Контроллер ожидает получить имя файла как paramater, поэтому мне нужно принять практически любой возможный символ в URL-адресе.
Мой JavaScript закодировать имя файла с помощью encodeURI(), поэтому файл с именем "My File [х] .avi" становится "Мой% 20file% 20% 5BX% 5D.mpg". Пока все хорошо.
Проблема возникает при приеме этого параметра в CodeIgniter. URL выглядит http://localhost/myproject/uploader/upload/My%20file%20%5BX%5D.avi
и заголовок контроллера:
function upload($param1='') { }
Когда я печатаю $ param1 я получил:
string(8) "My_file_"
Даже если я использую urldecode() остается такой же , Поэтому CodeIgniter ест закодированные квадратные скобки. Любая помощь?
Большое вам спасибо.
любая причина, по которой вы используете (предположительно) GET для этого, а не POST? – Ross
Потому что я использую Valums Ajax Upload (http://valums.com/ajax-upload/), которому необходимо отправить имя файла в качестве параметра в строке запроса. –
Ваш пример неправильный для начала. encodeURI («Мой файл [x] .avi») == My% 20File% 20% 5Bx% 5D.avi –