PHP Codeigniter, ошибка: преобразование массива в строку при переименовании загруженного файла - PullRequest
0 голосов
/ 16 февраля 2020

Я получил ошибку при загрузке файла в Codeigniter при попытке переименовать файл изображения. На локальном сервере работает нормально, но при успешной загрузке с живого сервера, но показывает ошибку: Преобразование массива в строку и неопределенный индекс: пользовательские файлы , который указывает на эту строку:

$image_name = "image-slider" . date("Y-m-d-h-i-sa").$_FILES["userfiles"]['name'];

в файле модели.

Это мой контроллер:

public function uploadImages()
{
    $result = $this->M_images->uploadImages();

    if($result){
        $this->session->set_flashdata('upload_success_msg', 'Upload Success!');
    }
    else
    {
        $this->session->set_flashdata('upload_error_msg', 'Upload Error!');
    }

    redirect(base_url('backend/homepage/C_images'));
}

А это моя модель:

public function uploadImages()
{
    $image_name = "image-slider" . date("Y-m-d-h-i-sa").$_FILES["userfiles"]['name'];

    $upload = array(
        'slider_title' => $this->input->post("slider-title"),
        'slider_alt' => $this->input->post("slider-alt"),
        'slider_link' => $this->input->post("slider-url"),
        'slider_desc' => $this->input->post("slider-description")
    );

    $config['upload_path'] = "./assets/uploads/sliders";
    $config['allowed_types'] = 'gif|jpeg|jpg|png';
    $config['overwrite'] = TRUE;
    $config['file_name'] = $image_name;

    $this->load->library('upload', $config);
    if ( ! $this->upload->do_upload('slider-file'))
    {
        $this->db->insert($this->tableslider, $upload);
        return $this->db->insert_id();
    }
    else
    {
        $data = $this->upload->data();
        $upload['slider_file'] = $data['file_name'];
        $this->db->insert($this->tableslider, $upload);
        return $this->db->insert_id();
    }
}

Где я делаю не так?

1 Ответ

0 голосов
/ 17 февраля 2020

Проблема в изменении вашей переменной $ upload в $ upload_data

Перед этой проверкой отправлены файлы или нет проверки неопределенного индекса

public function uploadImages(){
print_r($_FILES);exit; /*Comment after checked  */

 $image_name = "image-slider" . date("Y-m-d-h-i-sa").$_FILES["userfiles"]['name'];
 $upload_data = array(
    'slider_title' => $this->input->post("slider-title"),
    'slider_alt' => $this->input->post("slider-alt"),
    'slider_link' => $this->input->post("slider-url"),
    'slider_desc' => $this->input->post("slider-description")
);

    $config['upload_path'] = "./assets/uploads/sliders";
    $config['allowed_types'] = 'gif|jpeg|jpg|png';
    $config['overwrite'] = TRUE;
    $config['file_name'] = $image_name;

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

 if ( ! $this->upload->do_upload('slider-file')){
    $this->db->insert($this->tableslider, $upload_data);
    return $this->db->insert_id();
}else{
    $data = $this->upload->data();
    $upload_data['slider_file'] = $data['file_name'];
    $this->db->insert($this->tableslider, $upload_data);
    return $this->db->insert_id();
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...