.. / Загрузка файлов на сервер в Codeigniter

    Для загрузки файлов на сервер в Codeigniter есть отдельная библиотека File Uploading Class Этот раздел мануала очень хорошо документирован. Поэтому остается только передрать код из мануала.

    Здесь и далее для примера берем заготовку блока из Прелюдии

    1. Controller

    /system/application/controllers/upload.php

    <?php
                
                class Upload extends Controller {
                
                    function Upload()
                    {
                        parent::Controller();
                        $this->    load->    helper(array('form', 'url'));
                    }
                
                    function index()
                    {
                        $this->    load->    view('upload_form', array('error' =>     ' ' ));
                    }
                
                    function do_upload()
                    {
                        $config['upload_path'] = './up/';  // задаем путь к директории upload
                        $config['allowed_types'] = 'gif
    jpg
    txt
    html'; // указываем допустимые расширения
                        $config['max_size']    = '100';  // max размер файла в Kb
                        $config['max_width']  = '1024';  // max размер  по вертикали
                        $config['max_height']  = '768'; // max размер  по горизонтали
                
                        $this->    load->    library('upload', $config);
                
                        if ( ! $this->    upload->    do_upload())
                        {   // сообщение об ошибке загрузки
                            $error = array('error' =>     $this->    upload->    display_errors());
                            $this->    load->    view('upload_form', $error);
                        }
                        else
                        {  // вывод параметров  переданного файла
                            $data = array('upload_data' =>     $this->    upload->    data());
                            $this->    load->    view('upload_success', $data);
                        }
                    }
                }
                ?>    

    2. View


    Вьюеров два. Один вьюер для формы system/application/controllers/upload_form.php, через которую отправляют данные:

    <html> 
                <body>    
                <?=$error;?>    
                <?=form_open_multipart('upload/do_upload'); ?>    
                <input type="file" name="userfile" size="20" />    
                <br />    <br />    
                <input type="submit" value="upload" />    
                </form>    
                </body>    
                </html>    

    Второй вьюер для получения информации о загруженном файле S:\system\application\controllers\upload_success.php, через которую отправляют данные:

    <html> 
                <body>    
                <h3>    Your file was successfully uploaded!</h3>    
                <ul>    
                <?php foreach($upload_data as $item =>     $value):?>    
                <li>    <?=$item;?>    : <?=$value;?>    </li>    
                <?php endforeach; ?>    
                </ul>    
                <p>    <?=anchor('upload', 'Upload Another File!'); ?>    </p>    
                </body>    
                </html>    

    3. Директория для загрузки.

    Создаем директорию с именем up для загрузки файлов в корневой директории. Для простоты директория задается в контроллере через относительный путь.
    $config['upload_path'] = './up/';
    При переносе на Unix-хостинг не забываем открыть директорию на чтение и запись. Впрочем, если забудем - не беда - CodeIgniter напомнит сообщением .
    "The upload destination folder does not appear to be writable.";

    Теперь можно запустить скрипт загрузки http://ci/upload/ и проверить работу скрипта

    4. Руссификация

    Русификация сообщения об ошибках выполняется так же как и для валидатора в предыдущем примере. Языковой файл upload_lang.php, отвечающий за upload лежит в соответствующей директории.

    5. The End

    Все что создано на этом шаге складываем в архивную папку step3.

    1. 2007-09-03
    1. codeigniter.com/user_guide/helpers/download_helper.html - Download Helper (CodeIgniter User Guide)
Go Index Test