2012-04-05 14 views
6

Sto cercando di caricare le immagini e ridimensionarle, fino a quando il caricamento è funzionante e anche la creazione delle immagini del pollice. Ma non riesco a ridimensionare l'immagine originale. Tutto ciò che sta accadendo è che il file viene caricato direttamente nella cartella nella sua dimensione originale. Immagino di voler provare a ridimensionare l'immagine, quindi sovrascrivere il file caricato originariamente.CodeIgniter Carica l'immagine e poi ridimensionala

Ecco il mio codice Che cosa mi manca:

//Initialise the upload file class 
    $config['upload_path'] = './image_uploads/'; 
    $config['allowed_types'] = 'jpg|jpeg|gif|png'; 
    $config['max_size'] = '6048'; 
    $this->load->library('upload', $config); 

    $userfile = "_upload_image"; 
      //check if a file is being uploaded 
      if(strlen($_FILES["_upload_image"]["name"])>0){ 

       if (!$this->upload->do_upload($userfile))//Check if upload is unsuccessful 
       { 
        $upload_errors = $this->upload->display_errors('', ''); 
        $this->session->set_flashdata('errors', 'Error: '.$upload_errors); 
        redirect('admin/view_food/'.$food->course_id); 
       } 
       else 
       { 
        //$image_data = $this->upload->data(); 

        ////[ THUMB IMAGE ] 
        $config2['image_library'] = 'gd2'; 
        $config2['source_image'] = $this->upload->upload_path.$this->upload->file_name; 
        $config2['new_image'] = './image_uploads/thumbs'; 
        $config2['maintain_ratio'] = TRUE; 
        $config2['create_thumb'] = TRUE; 
        $config2['thumb_marker'] = '_thumb'; 
        $config2['width'] = 75; 
        $config2['height'] = 50; 
        $this->load->library('image_lib',$config2); 

        if (!$this->image_lib->resize()){ 
       $this->session->set_flashdata('errors', $this->image_lib->display_errors('', '')); 
       } 

        //[ MAIN IMAGE ] 
        $config['image_library'] = 'gd2'; 
        $config['source_image'] = $this->upload->upload_path.$this->upload->file_name; 
        //$config['new_image'] = './image_uploads/'; 
        $config['maintain_ratio'] = TRUE; 
        $config['width'] = 250; 
        $config['height'] = 250; 
        $this->load->library('image_lib',$config); 

        if (!$this->image_lib->resize()){ 
       $this->session->set_flashdata('errors', $this->image_lib->display_errors('', '')); 
       } 
       }  
      } 

risposta

4

Forse si è tentato di aggiungere questo alle opzioni di configurazione

$config['overwrite'] = TRUE; 

Questo dovrebbe fare il trucco.

Secondo la documentazione

Se impostata su true, se un file con lo stesso nome di quello che si sta caricando esiste, verrà sovrascritto. Se impostato su false, un numero verrà aggiunto al nome del file se un altro con lo stesso nome esiste.

3

ho cercato di creare le miniature per gli ultimi 20 ore e non ero riuscita fino a quando ho capito dove ho dovuto vedermela con il codice, non ero in fase di inizializzazione il mio allineamento config !!!

Basta aggiungere questa riga di codice dopo aver caricato il tuo image_lib

$this->image_lib->initialize($config); 

Spero che questo funziona per voi ........... pollici in su!

0

Se ti piace giocare con Image with CI, consiglio vivamente la libreria image_moo.