2012-06-18 5 views
0

У меня проблемы с загрузкой файлов с помощью CodeIgniter 2.1.0, так как я получаю массив $ _FILES пустым.Не удается загрузить файлы с CodeIgniter 2.1.0

Это форма:

<form enctype="multipart/form-data" action="<?= base_url()?>nicUpload/test" method="POST"> 
    Send this file: <input name="userfile" type="file" /> 
    <input type="submit" value="Send File" /> 
</form> 

Действие в оказанной форме принимает значение: http://localhost/nicUpload/test.

Это контроллер:

<?php 
    class NicUpload extends CI_Controller { 

    public function __construct() { 
     parent::__construct(); 
     $this->load->helper(array('form', 'url')); 
    } 
    function test() { 
     echo count($_FILES); 
    } 
    } 
?> 

В результате 0, я ожидал бы 1.

Я попытался сделать то же самое без CodeIgniter:

index.php:

<!doctype html> 
<html> 
    <head></head> 
    <body> 
    <form enctype="multipart/form-data" action="upload.php" method="POST"> 
     Send this file: <input name="userfile" type="file" /> 
     <input type="submit" value="Send File" /> 
    </form> 
    </body> 
</html> 

upload.php:

<?php 
    echo count($_FILES); 
?> 

и я получаю ожидаемый результат (1). Таким образом, это не проблема конфигурации php.

** UPDATE **

я должен был сказать это раньше, но если я использую CodeIgniter в Загрузить класс он терпит неудачу в этой линии Конфигурационными system/libraries/Upload.php:

// Is $_FILES[$field] set? If not, no reason to continue. 
if (! isset($_FILES[$field])) 
{ 
    $this->set_error('upload_no_file_selected'); 
    return FALSE; 
} 

, как $_FILES пуст.

ответ

0

Хорошо, спасибо Сене, я нашел проблему. Я использовал метод, описанный here, чтобы использовать i18n, поэтому, когда я загружался в http://localhost/nicUpload/test, меня переадресовывали на http://localhost/spa/nicUpload/test, при этом перенаправление информации в $_FILES терялось. Так что я просто должен был добавить nicUpload к $special массива в MY_Lang.php:

private $special = array (
    "admin", 
    "auth", 
    "nicUpload" 
); 

что установил его, когда $_FILES имел надлежащую информацию, которую я мог бы использовать правильный метод для загрузки файлов (метод, который упоминается Sena).