Hice insertar datos junto con la carga de imágenes en la base de datos, cuando la ejecución fue exitosa, pero cuando la inserción de datos y la carga de imágenes contenían errores.

La ruta de la imagen no es correcta.

Su servidor no admite la función GD necesaria para procesar este tipo de imagen.

¿Cómo hacer frente si inserto los datos sin cargar imágenes no es un error? y la base de datos de imágenes pasó a la imagen predeterminada?

Estos son mis controladores

public function save(){   
    $this->load->library('image_lib');
    //$nama_asli = $_FILES['userfile']['name'];
    $id = $this->input->post('id',TRUE);

    $config['file_name'] = $id ;//'_'.'_'.$nama_asli;
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'gif|jpg|png|jpeg|bmp';
    $config['max_size'] = '100000';
    
    $this->load->library('upload', $config);
    
    $this->upload->initialize($config);
    if ( ! $this->upload->do_upload('userfile'))
    {
        $files = $this->upload->data();
        $fileNameResize = $config['upload_path'].$config['file_name'];
        $size =  array(             
                    array('name'    => 'thumb','width'  => 100, 'height'    => 100, 'quality'   => '100%')
                );
        $resize = array();
        foreach($size as $r){               
            $resize = array(
                "width"         => $r['width'],
                "height"        => $r['height'],
                "quality"       => $r['quality'],
                "source_image"  => $fileNameResize,
                "new_image"     => $url.$r['name'].'/'.$config['file_name']
            );
        $this->image_lib->initialize($resize); 
            if(!$this->image_lib->resize())                 
            die($this->image_lib->display_errors());
        }   
        
    }
    else
    {
        $data = array('upload_data' => $this->upload->data());      
        $get_name = $this->upload->data();
        $nama_foto = $get_name['file_name'];
        $this->mcrud->savealat($nama_foto);
        redirect('instrument/detailalat');      
    }
}   

Este es mi modelo

function savealat($nama_foto) {
    $data = array(
        'id' => $this->input->post('id'),
        'namaalat' => $this->input->post('namaalat'),
        'dayalistrik' => $this->input->post('dayalistrik'),     
        'merk' => $this->input->post('merk'),
        'namasupplier' => $this->input->post('namasupplier'),       
        'nokatalog' => $this->input->post('nokatalog'),     
        'noseri' => $this->input->post('noseri'),       
        'category' => $this->input->post('category'),
        'lokasi' => $this->input->post('lokasi'),
        'pengguna' => $this->input->post('pengguna'),
        'status' => $this->input->post('status'),
        'jadwalkal' => $this->input->post('jadwalkal'),     
        'manual' => $this->input->post('manual'),
        'dateinput' => $this->input->post('date'),      
        'foto' => $nama_foto
        //'created' => $tanggal
    );  
    $this->db->insert('tbdetail', $data);
}   
2
irwan dwiyanto 12 ago. 2016 a las 07:31

2 respuestas

La mejor respuesta
    public function save(){   
    $this->load->library('image_lib');
    //$nama_asli = $_FILES['userfile']['name'];
    $id = $this->input->post('id',TRUE);

    $config['file_name'] = $id ;//'_'.'_'.$nama_asli;
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'gif|jpg|png|jpeg|bmp';
    $config['max_size'] = '100000';

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

    $this->upload->initialize($config);
    if ( ! $this->upload->do_upload('userfile'))
    {
        $files = $this->upload->data();
        $fileNameResize = $config['upload_path'].$config['file_name'];
        $size =  array(             
                    array('name'    => 'thumb','width'  => 100, 'height'    => 100, 'quality'   => '100%')
                );
        $resize = array();
        foreach($size as $r){               
            $resize = array(
                "width"         => $r['width'],
                "height"        => $r['height'],
                "quality"       => $r['quality'],
                "source_image"  => $fileNameResize,
                "new_image"     => base_url().$r['name'].'/'.$config['file_name']
            );
        $this->image_lib->initialize($resize); 
            if(!$this->image_lib->resize())                 
            die($this->image_lib->display_errors());
        }   

        $data = array('upload_data' => $this->upload->data());      
        $get_name = $this->upload->data();
        $nama_foto = $get_name['file_name'];
        $this->mcrud->savealat($nama_foto);
        redirect('instrument/detailalat');   


    }
    else
    {   

        //Moved your code up there
    }
}   

Si tengo razón, el problema es que pones la carga en else. Intenta mover el código y dime si funciona

1
Lorenzo 12 ago. 2016 a las 08:54

Puede que esta respuesta pueda ayudarlo. Hay algunas sugerencias más en la parte de comentarios que pueden encontrar una solución para usted. Su servidor no admite la función GD necesaria para procesar este tipo de imagen.Ci

1
Community 23 may. 2017 a las 11:51