Upload Foto

Olá pessoal!

Tenho uma dúvida que não me deixa continuar a desenvolver a minha aplicação, e para tal necessito de uma pequena ajuda.

Tenho uma tabela denominada "Aluno" e preciso de guardar a sua foto. Para tal na tabela tenho o campo "localizacao" que é referente ao diretório onde a foto está guardada (ficará em /protected/fotos e o seu nome será o mesmo que o número de identificação civil do aluno).

A minha questão aqui é:

Onde faço o upload

Como faço o upload

Como mostro a foto depois quando for visualizar o perfil do aluno?

Para fazer o upload da foto estou a seguir a ideia deste colega:

Mas o meu problema é onde vou fazer a verificação do tipo de ficheiro (só pode ser .png)

Onde vou colocar o código referente ao upload da foto

Como vou mostrar a foto depois de inserida

Tenho um ActiveForm para a inserção dos dados todos de um aluno (nome, data de nascimento, etc) onde se inclui também a inserção da foto de aluno.

Podem ajudar-me? Sou novato nisto…

Obrigado gente! :D

segue ai a validação do tipo de ficheiro para imagem(png, jpg…)

Vá no model e faça o seguinte no function rules():


public function rules()

	{

		// NOTE: you should only define rules for those attributes that

		// will receive user inputs.

		return array(

		array('foto', 

                    'file',

                    'allowEmpty' => true,

                    'types'=>'jpg, gif, png',//tipo do ficheiro

                    'maxSize'=>2000000, // 20MB tamanho da foto

                    'tooLarge'=>'Este Foto tem tamanho superior a 2 MB.Por favor caregue foto menor.',

            ),.....

e Agora para ver imagem na view segue o codigo:


<img src="<?php echo Yii::app()->request->baseUrl?>/foto/foto_inscrito/<?php echo $model->foto ?>" width="100" height="100" /><br />



Valeu! Muito obrigado!

Agora para fazer o upload como faço?

É na actionCreate? E faço com código semelhante ao que apresenta o nosso colega nesse website que indiquei?

Desculpa demora. No actionCreate fica


public function actionCreate(){

	


	$model=new Alunos;  //Este e seu model

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

	{

		$rnd = rand(0,9999);

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

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

		$fileName = "{$rnd}-{$uploadedFile}";  // random number + file name

		$model->foto = $fileName;

											 

		if($model->save())

		{

		if(empty($uploadedFile))  // check if uploaded file is set or not

           {

                    //$uploadedFile->saveAs(Yii::app()->basePath.'/../foto/foto_Alunos'.$model->foto);

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

             }

			 else

			 {

			$uploadedFile->saveAs(Yii::app()->basePath.'/../foto/foto_Alunos/'.$fileName);  // Local de upload			

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

			}

			}

	}

	$this->render('create',array(

	'model'=>$model,

	));

}