У меня есть скрипт, чтобы добавить название группы + изображение группы. Это мой контроллер:
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 перед тем «$ 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? Спасибо!
Задача ещё не решена.
Других решений пока нет …