Загрузить созданную картинку с помощью codeigniter - PullRequest
0 голосов
/ 30 мая 2018

У меня есть скрипт для добавления названия группы + фотография группы.Это мой контроллер:

public function addBand()
{
    $config['upload_path']   = './uploads/bands';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['encrypt_name'] = TRUE;
    $this->load->library('upload', $config);

    if ( ! $this->upload->do_upload('picture')) {
        $error = array('error' => $this->upload->display_errors());
        $this->session->set_flashdata('error', $error);
        $this->load->view('concerts/index');
    }

    else {

        $upload_data = $this->upload->data();
        $file_name = $upload_data['file_name'];

        $data = array(
            'bName' => $this->input->post('name'),
            'bPicture' => $file_name
        );

        $this->band_model->insertBand($data);
        $this->session->set_flashdata('success', "Groupe ajouté");
        redirect('');
    }
}

Этот контроллер работает хорошо!Так.Теперь я добавляю плагин Cropper в jquery.Я получаю значение "# imagebase64" , и он возвращает мне хороший результат.После, я поставил код для создания изображения из этих данных64.Он хорошо работает.Теперь я хочу добавить этот код с Codeigniter .. и он не работает:

public function addBand()
{
    $config['upload_path']   = './uploads/bands';
    $config['allowed_types'] = 'gif|jpg|png';
    $config['encrypt_name'] = TRUE;
    $this->load->library('upload', $config);

    $img64 = $this->input->post('imagebase64');
    $exploded = explode(',', $img64, 2);
    $encoded = $exploded[1];
    $decoded = base64_decode($encoded);
    $img_handler = imagecreatefromstring($decoded);
    $finalImg = imagepng($img_handler, "png.png");

    if ( ! $this->upload->do_upload('picture')) {
        $error = array('error' => $this->upload->display_errors());
        $this->session->set_flashdata('error', $error);
        $this->load->view('concerts/index');
    }

    else {

        $finalImg = $this->upload->data();
        $file_name = $finalImg['file_name'];

        $data = array(
            'bName' => $this->input->post('name'),
            'bPicture' => $file_name
        );

        $this->band_model->insertBand($data);
        $this->session->set_flashdata('success', "Groupe ajouté");
        redirect('');
    }
}

Когда я делаю var_dump из $ finalImg juste перед "$ finalImg = $ this-> upload-> data (); " у меня есть " логическое значение: 1 ", когда я делаю выравнивание var_dump после $ file_name = $ finalImg ['file_name']; у меня есть:

'file_name' => string 'eca69e25e70c469e73a5bfa114c5a87d.png' (length=36)
  'file_type' => string 'image/png' (length=9)
  'file_path' => string 'C:/wamp64/www/concerts/uploads/bands/' (length=37)
  'full_path' => string 'C:/wamp64/www/concerts/uploads/bands/eca69e25e70c469e73a5bfa114c5a87d.png' (length=73)
  'raw_name' => string 'eca69e25e70c469e73a5bfa114c5a87d' (length=32)
  'orig_name' => string 'Sans_titre-1.png' (length=16)
  'client_name' => string 'Sans titre-1.png' (length=16)
  'file_ext' => string '.png' (length=4)
  'file_size' => float 368.2
  'is_image' => boolean true
  'image_width' => int 784
  'image_height' => int 419
  'image_type' => string 'png' (length=3)
  'image_size_str' => string 'width="784" height="419"' (length=24)

Итак, как мне сгенерировать картинку в PHP и загрузить эту картинку с помощью codeigniter?Спасибо!

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