Загрузка файлов работает на Windows, но не на Linux - PullRequest
2 голосов
/ 30 июня 2010

Я создал контроллер, который обрабатывает файловые записи, перемещает загруженные файлы в папку рядом с файлом index.php (не в папке приложения, потому что я хочу получить доступ к файлам напрямую через http).

Загрузка отлично работает на серверах под управлением Windows, но не на Linux. Версия PHP остается одинаковой на каждом сервере и на моей локальной машине.

Код:

    $config['upload_path'] = 'files/pictures/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '10240';
    $config['encrypt_name'] = true;

    $this->upload->initialize($config);

    if ( ! $this->upload->do_upload('Filedata'))
    {
        //error handling
    }   
    else
    {
        $data = array('upload_data' => $this->upload->data());
        imageResize($data['upload_data']['full_path'],600);
    }

Как видите, ничего особенного, это обычный загрузчик изображений на основе CI. Почему я получаю сообщение об ошибке в Linux?

Я пробовал несколько способов с путем загрузки, но ни один из них не работает. В папке есть chmod 777.

    $config['upload_path'] = './files/pictures/';
    $config['upload_path'] = './files/pictures';
    $config['upload_path'] = 'files/pictures/';
    $config['upload_path'] = 'files/pictures';

Ничто из этого не работает под Linux.

1 Ответ

4 голосов
/ 30 июня 2010

Временный каталог отсутствует. Загруженный файл сначала перемещается во временный каталог, а затем перемещается в место назначения. Имя каталога, вероятно, где-то настроено, или вы можете найти его в документации. Этот каталог не существует на сервере Linux и существует на сервере Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...