Codeigniter do_upload () молча терпит неудачу при «успехе» - PullRequest
6 голосов
/ 22 июня 2011

Я использую CodeIgniter для написания формы загрузки изображений. Ранее у меня был похожий код для работы на другом сайте. На данный момент - код для получения изображения multipart / form-data не работает тихо. При настройке сервера / скрипта я получал ошибки, такие как неверный путь к файлу, недопустимые типы mime, но теперь я ничего не получаю.

Приведенный ниже код возвращает: «ABC» и завершается с ошибкой до «D» без ошибок.

Если я изменю «photo_filedata» на «photo_filedata2», я получаю более полезную ошибку: «ABCD Вы не выбрали файл для загрузки».

Я в полной нерешительности отлаживаю это, так как с сервера вообще ничего не получаю.

Кто-нибудь знает, что может происходить?

Сервер: WAMP, работающий в Windows 7. Иметь существующий проект, который выполняет загрузку файлов без проблем.

function upload_photo()
{
    echo "A";

    $config['upload_path'] = './images/uploads/';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['file_name'] = 'photo_' . substr(md5(time()), 0, 16);
    $config['max_size']    = 2000;
    $config['max_width']  = 0;
    $config['max_height']  = 0;

    echo "B";

    $this->load->library('upload', $config);

    echo "C";

    $result = $this->upload->do_upload('photo_filedata');

    echo "D";

    if (!$result)
    {
        $error = $this->upload->display_errors();
        $data = false;
    }   
    else
    {
        $error = false;
        $data = $this->upload->data();
    }

    $this->load->view('home-photo-upload', array('error' => $error, 'data' => $data));
}

Ответы [ 3 ]

1 голос
/ 29 июля 2011
$config['upload_path'] = 'uploads/category/'.$id.'/';
        //echo $file_name;die;
        //echo $config['upload_path'];
        $config['allowed_types'] = 'gif|jpg|jpeg|png';
        $config['max_size'] = '750';
        $config['max_width'] = '1920';
        $config['max_height'] = '1280';
        $this->load->library('upload');
         foreach ($_FILES as $key => $value) {
            //print_r($key);

            if (!empty($key['name'])) {

                $this->upload->initialize($config);
                if (!$this->upload->do_upload($key)) {
                  // echo 'test';die;
//                    rmdir('uploads/category/'.$id);
                    $errors = $this->upload->display_errors();
                    flashMsg($errors);
                }
}
}

попробуйте это!

0 голосов
/ 24 июня 2011

(перепост из комментариев): В system / application / config / mimes.php была опечатка / ошибка, которая привела к сбою метода is_allowed_filetype () в do_upload ();

Erronous: 
        ...
        'gif' => array('image/gif', 'application/octet-stream'),
        'jpeg' => array('image/jpeg', 'image/pjpeg', 'application/octet-stream'),
        'jpg' => array('image/jpeg', 'image/pjpeg', 'application/octet-stream'),
        'jpe' => array('image/jpeg', 'image/pjpeg', 'application/octet-stream'),
        'png' => array('image/png', 'image/x-png', 'application/octet-stream' 
    );

// отсутствует) для окончательной записи. - Джон Бук (он же Маркавиан)

Кажется, что любые ошибки в файлах конфигурации CodeIgniter молча завершаются сбоем, поэтому о дальнейших ошибках не сообщается. Обнаружена проблема при отладке внутреннего метода CI, чтобы выяснить, какая строка не удалась.

0 голосов
/ 22 июня 2011

Ваша максимальная ширина и максимальная высота как ноль могут быть проблемой, проверьте это.

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