Blob Image

Innanzi tutto ciao a tutti… vi leggo da un po’ tra qua e la versione in inglese del forum…

adesso mi servirebbe un aiutino…

Ho creato un form con un upload di immagine che salva in un db mysql in formato blob… solo che al momento dell’update, vorrei che non fosse cancellata l’immagine, se l’utente non ne seleziona una nuova.

Come posso fare?

Grazie

neorf

Invece di fare semplicemente $model->save()… dagli la lista dei campi che vuoi salvare, rimovendo quello dell’imagine

per essempio


if(empty($model->imagine))

   $model->save('true', array('nome', 'cognome'));

else

   $model->save();

Ciao neorf è interessante il discorso del campo tipo blob, mostreresti il codice che usi x ottenerlo, in futuro ho intenzione di utilizzarla come funzionalità. grazie

Non va… ovvero, se implemento quel if per il salvataggio, non solo mi elimina la foto blob, ma non mi salva i campi nome e cognome…

vi posto la parte del controller che riguarda l’upload, con commentata la parte del semplice salvataggio ma che funziona




if(isset($_FILES['Autori']['size']['foto']) && $_FILES['Autori']['size']['foto'] > 0)

                            {

                                $file = CUploadedFile::getInstance($model,'foto');

                                

                              

                                $model->fotoName = $file->name;

                                $model->fotoType = $file->type;

                                $fp = fopen($file->tempName, 'r');

                                $content = fread($fp, filesize($file->tempName));

                                fclose($fp);

                                $model->foto = $content;

                                

                                

                            }

                       

                        

                     

                            

                        if(isset($_POST['fotoDelete']) && $_POST['fotoDelete']==1)   {

                            $model->fotoName = '';

                            $model->fotoType = '';

                            $model->foto = '';

                            

                        } 

                        

                        if($model->fotoName) {


                                if($model->save('true', array('nome', 'cognome','biografia'))) $this->redirect(array('shop/admin'));

                        }

                                else {

                                if($model->save())

				$this->redirect(array('shop/admin')); }

                        

			/*if($model->save())

				$this->redirect(array('shop/admin'));*/



ps. poi posto l’esempio del blog, che cmq l’ho trovato online in inglese.

Dai un occhiata ai errori della validazione :D

Suggerimento? :D

ci sono tanti modi da fare… il piu facille per vedere di cosa si tratta e:


if($model->save('true', array('nome', 'cognome','biografia')))

   $this->redirect(array('shop/admin'));

else

   echo $model->getErrors();

Allora, risolto…

nel modello per tra le rules non avevo dichiarato il record biografia, ora così funziona tutto:




public function rules() {

 ...

array('nome,cognome,biografia', 'required'),

array('autori_id, nome, cognome,biografia', 'safe', 'on'=>'search'),