Problema Validazione Dati Form Con Upload Di Un File

Salve a tutti, mi succede che in una form dove ho un campo fileField per fare l’upload di un file, non mi effettua la validazione a meno di non remmare la riga di codice che scrive il file su disco…

Ecco il codice che ho nel controller:




		if(isset($_POST['Immagini']))

		{

			$model->attributes=$_POST['Immagini'];			

			

			$uploadedFile=CUploadedFile::getInstance($model,'nome_immagine');

			$nome_img_temp = "{$uploadedFile}";

			$model->nome_immagine = $nome_img_temp;

			if($model->save())

                              $uploadedFile->saveAs(Yii::app()->basePath.'/images/annunci/'.$nome_img_temp);

		              $this->redirect(array('view','id'=>$model->id_immagine));

		}



Se commento la riga con il comando saveAs la validazione funziona correttamente, diversamente non ne vuole sapere, mi fa un redirect alla index…le rules che ho indicato nel model sono




array('nome_immagine', 'file', 'types'=>'jpg, gif, png', 'allowEmpty'=>true, 'on'=>'update'),

array('nome_immagine', 'file', 'types'=>'jpg, gif, png', 'on'=>'insert'),



e funzionano correttamente una volta remmata quella riga…Idee?

Grazie

Sai che non so cosa vuol dire remmare?

disabilitato la validazione lato client?

aggiunto il tag multipart/form-data per la form?

Ops…dev’essere il mio retaggio da vecchio quale sono…remmare viene dal vecchio comando rem del basic che si utilizzava per commentare una riga. Significa quindi commentare, segnare parti di codice che verranno ignorate dall’interprete.

Se invece lo sapevi ed il tuo è un richiamo alla conservazione della lingua, ti do ragione!

La validazione va benissimo se tolgo quella riga…il multipart c’è e se inserisco correttamente tutti i dati, file compreso, mi fa l’upload ed aggionail db correttamente…

Leggendo qui e la mi sto convincendo che il problema sta nelmetodo save e nella validazione automatica che fa prima di scrivere nel db…boh…

[Risolto] (Ma come si fa a modificare il titolo del post?).

Come spesso accade si trattava di una svista nel codice: il ciclo che salva e valida i dati non aveva le parentesi di apertura e chiusura. Le ho aggiunte è tutto funziona come si deve.




....


if($model->save())

  {

    $uploadedFile->saveAs(Yii::app()->basePath.'/images/annunci/'.$nome_img_temp);

    $this->redirect(array('view','id'=>$model->id_immagine));

  }


....



devi usare il full editor per cambiare il titolo