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.
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.',
),.....
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,
));
}