я не знаю, как обновить и заменить изображение в codeigniter - PullRequest
0 голосов
/ 16 января 2020

Я хочу заменить и обновить загруженное изображение с помощью codeigniter. Но я не уверен, как этого добиться. Вот мой код ниже -

МОЙ КОНТРОЛЛЕР:

 public function updateProccess()
{
    $this->items_model->updateData();
    if ($this->db->affected_rows() > 0) {
        $this->session->set_flashdata('message', 'Update data is success');
    }
    redirect('items');
}

И вот моя модель для обновления данных

public function updateData()
{

    $data = [
        'barcode' => $this->input->post('barcode'),
        'name' => $this->input->post('name'),
        'categories_id' => $this->input->post('category'),
        'units_id' => $this->input->post('unit'),
        'price' => $this->input->post('price'),
        'updated' => date('Y-m-d H:i:s')
    ];
    $this->db->where('items_id', $this->input->post('items_id'));
    $this->db->update('items', $data);
}

спасибо за вашу помощь:)

1 Ответ

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

Это мой случай:

Шаг 1. Сначала я проверил, что файл не пустой, если файл пустой, файл обновления не будет работать, если файл загружен из html, тогда я выбрал предыдущую запись из базы данных в переменной $ row (временные переменные).

Шаг 2: После получения предыдущих данных я обновил данные в базе данных, т.е. путь и имя нового файла.

Шаг 3: После что я подтвердил, что пользователь обновляет данные или вставляет новые. Если данные должны быть обновлены, то старое изображение будет удалено.

if($_FILES["img"]["name"]!="")
{
    $row=$this->general_model->getSingle("banner", ["id"=>$id]);
    $temp=$_FILES["img"]["name"];
    $temp=explode(".", $temp);
    $ext=end($temp);
    $file_name_temp="banner".time().rand(0,9);
    $file_name=$save["img"]=$file_name_temp.".".$ext;
    $config["file_name"]=$file_name;
    $config['upload_path']          = './uploads/';
    $config['allowed_types']        = 'jpg|jpeg|png';
    $config['max_size']             = 1024*10;
    enter code here
    $this->load->library('upload', $config);

    if ( ! $this->upload->do_upload('img'))
    {`enter code here`
        $msg=strip_tags($this->upload->display_errors());
        _setFlashSession("msg", "<span class='label label-danger'>$msg</span>");
        redirect("admin/site-configure/banner");
    }

    if($id!="")
    {
        $file="./uploads/".$row["img"];
        unlink($file);
        $file="./webp/".$row["webp"];
        unlink($file);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...