CodeIgniter Caricare l’immagine e ridimensionarla

Sto cercando di caricare le immagini e ridimensionarle, finora il caricamento di lavoro e anche la creazione di un unghia del pollice immagini. Ma non riesco a ottenere l’immagine originale per essere ridimensionata. Tutto quello che sta succedendo è che il file viene caricato direttamente la cartella nella sua dimensione originale. Credo che sto cercando di prendere questa immagine, ridimensionarla e poi sovrascrivere originariamente file caricato.

Qui è 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('', ''));   
              }
               }      
           }  

InformationsquelleAutor user794846 | 2012-04-05

3 risposte

  1. 4

    Hai provato ad aggiungere questo per le opzioni di configurazione

    $config['overwrite'] = TRUE;

    Questo dovrebbe fare il trucco.

    In base alla documentazione

    Se impostato a true, se un file con lo stesso nome di quello che si sta caricando esiste, verrà sovrascritto. Se impostato a false, verrà aggiunto un numero al nome del file, se l’altra con l’>lo stesso nome esiste.

    InformationsquelleAutor Altrim

  2. 4

    ho cercato di creare miniature di questi ultimi 20 ore e non era successo fino a quando ho capito dove mi è stato pasticciano con il codice, io non l’INIZIALIZZAZIONE il mio array di configurazione!!!

    Basta aggiungere questa riga di codice dopo il caricamento del image_lib

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

    Spero che questo funziona per voi………..thumbs up!

    InformationsquelleAutor Maitho David

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *