Upload Image

ciao a tutti,

è da giorni che sono fermo sul medesimo problema, non riesco ad implementare l’uload di una immagine.

non so’ cosa sia successo ma fino a 2 settimane fa’ il tutto funzionava correttamente. ho seguito quanto riportato nella documentazione: How to upload a file using a model al url: http://www.yiiframework.com/wiki/2/

il model

class ValutaForm extends CFormModel

{

  public $image1;





public function rules()


{


	return array(


             	array('image1', 'file', 'types'=>'jpg, gif, png'), 


                //array('image1', 'file', 'types'=>'jpg, gif, png', 'on'=>'upload', 'safe'=>true),


   );


}

[b][i]

il Controller[/i][/b]

         	$model->image1 = CUploadedFile::getInstance($model,'image1');


         	if($model->image1)


         	{





         	}

la view


<?php $form=$this->beginWidget('CActiveForm', array(

			'id'=>'valuta-form',

			'enableClientValidation'=>true,

			'enableAjaxValidation'=>false,

			'clientOptions'=>array('validateOnSubmit'=>true,                            

                        'htmlOptions' => array('enctype' => 'multipart/form-data'),

			),

)); ?>

<?php 

 	echo CHtml::activeFileField($model, 'image1', array('size' => 3)); 

?>


<?php echo CHtml::submitButton('Invia'); ?>


Purtroppo la funzione CUploadedFile::getInstance($model,‘image1’) ritorna sempre un valore vuoto e la variabile $_FILES è sempre vuota.

Grazie per chi mi vorrà dare un aiuto

Per prima cosa, ho modificato leggermente il tuo messaggio per mostrarti che puoi formattare il codice a tuo piacimento. Seleziona una porzione del messaggio e poi il bottone (ne ho allegato uno screenshot). Di primo acchitto mi sembra tutto ok. Tempo fa ho avuto problemi simili e la ragione era dovuta alla versione di PHP. Ci persi una mezza giornata. Che cosa ti restituisce $_FILES se ti poni nelle prime righe della action? Per qualche ragione $_FILES potrebbe essere stata sovrascritta ed è per questo che tu vedi l’array vuoto. Prova a fare un


var_dump($_FILES);

prima di [color=#1C2837][size=2]


CUploadedFile::getInstance($model,'image1'); 

.[/size][/color]

La versione di php che ho installato è 5.4.7

ho provato ad inserire var_dump($_FILES) ma purtroppo print_r($_FILES) restituisce sempre Array ( )

grazie per l’aiuto e i suggerimenti

Tempo fa anche io ho perso qualche ora prima di accorgermi che il file superava le dimensioni consentite dalla direttiva UPLOAD_MAX_FILESIZE nel php.ini.

Di solito è impostata a 2M, fai qualche prova con file di qualche k.

Ho provato ma non è cambiato nulla

Qualcuno può darmi un aiuto per risolvere questo problema?

dichiara la form così:




$form = $this->beginWidget(

    'CActiveForm',

    array(

        'id' => 'valuta-form',

        'enableAjaxValidation' => false,

        'htmlOptions' => array('enctype' => 'multipart/form-data'),

    )

);



ad occhio la tua al rigo di clientOptions non è scritta correttamente.

dichiara la form così:




$form = $this->beginWidget(

    'CActiveForm',

    array(

        'id' => 'valuta-form',

        'enableAjaxValidation' => false,

        'htmlOptions' => array('enctype' => 'multipart/form-data'),

    )

);



ad occhio la tua al rigo di clientOptions non è scritta correttamente.

Così funziona correttamente.

Grazie per l’aiuto st4nny