Как загрузить изображение с кодировкой base64 в codeigniter

#php #codeigniter

#php #codeigniter

Вопрос:

У меня есть строка изображения в кодировке base64 $imgcode , которая представляет собой изображение в кодировке base64, и я хочу загрузить его с помощью codeigniter.

Вот что я делаю —

 $this->Photo_model->uploadPhoto($userdir,base64_decode($imgCode)
 

Функция uploadPhoto такова:

 public function uploadPhoto($path,$img){

    //echo $img;
    //echo $path;

    $config['upload_path'] = $path;
    $config['allowed_types'] = 'gif|jpg|png';
    $config['max_size'] = '1000';
    $config['max_width']  = '1024';
    $config['max_height']  = '768';

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

    if(!$this->upload->do_upload($img)){
        return FALSE;  
    }
    else{ 
        $fInfo = $this->upload->data();
        $this->createThumbnail($fInfo['file_name'],$fInfo['file_path']);  

        $this->load->model('Photo_model');
        if($this->Photo_model->savePhotoInfo($fInfo['file_name'],$path)){
            return true;
        }
        else{
            return false;
        }
    }
}
 

Изображение не загружается. Это правильный способ?

Комментарии:

1. Я удалил фактическую строку, которая чуть не разбила мой браузер, когда я попытался ее отредактировать.

Ответ №1:

Поступали сообщения о различных сбоях, когда base64_decode используется для декодирования больших файлов. Подробнее о проблемах можно узнать здесь http://www.php.net/manual/en/function.base64-decode.php#105512

Я рекомендую разделить строку следующим образом $decodedstring=base64_decode(chunk_split($encodedstring));