Tenho um form_modal onde o usuário(cliente) cadastra uma atividade, nessa tela tem 3 campos, descrição, projeto e anexo.
o problema esta quando eu faço o upload da imagen(Obs: uso a extensão EAjaxUpload), o mesmo upa a imagen no diretorio que criei, porém não consigo salvar o nome do arquivo no banco.
segue os códigos:
view:
<div class="rowElem noborder three_columns">
<?php echo $form2->labelEx($model, 'anexo'); ?>
<div class="fix"></div>
<?php
$this->widget('ext.EAjaxUpload.EAjaxUpload', array(
'id' => 'uploadFile',
'config' => array(
'action' => Yii::app()->createUrl('atividade/upload/'),
'allowedExtensions' => array("jpg","jpeg","png"), //array("jpg","jpeg","gif","exe","mov" and etc...
'sizeLimit' => 10 * 1024 * 1024, // maximum file size in bytes
'minSizeLimit' => 10 * 1024, // minimum file size in bytes
'onComplete'=>"js:function(id, fileName, responseJSON){ alert(fileName); }",
//'messages'=>array(
// 'typeError'=>"{file} has invalid extension. Only {extensions} are allowed.",
// 'sizeError'=>"{file} is too large, maximum file size is {sizeLimit}.",
// 'minSizeError'=>"{file} is too small, minimum file size is {minSizeLimit}.",
// 'emptyError'=>"{file} is empty, please select files again without it.",
// 'onLeave'=>"The files are being uploaded, if you leave now the upload will be cancelled."
// ),
//'showMessage'=>"js:function(message){ alert(message); }"
)
));
?>
<div class="fix"></div>
</div>
Controller:
Função actionCreateViaAjax()
{
$this->title_action = "Criar Atividade";
$model=new Atividade;
$string = array("","");
if(isset($_POST['Atividade']))
{
if(Yii::app()->user->groupname == "cliente"){
$model->attributes = $_POST['Atividade'];
$model->status = "standby";
$model->prioridade = "media";
$model->data = "1969-12-31";
if($model->save()){
$string[0] = 'Success';
$string[1] = 'Atividade inserida.';
}
else {
$string[0] = 'Failure';
$string[1] = 'Atividade não foi inserida com sucesso.';
}
}else{
if (isset($_POST['Atividade']['stats']))
{
$model->attributes=$_POST['Atividade'];
$model->descricao=$_POST['Atividade']['desc'];
$model->status=$_POST['Atividade']['stats'];
$model->prioridade=$_POST['Atividade']['priority'];
$model->data = date("Y-m-d",strtotime(str_replace("/", "-",$_POST['Atividade']['dat'])));
if($model->save()){
$string[0] = 'Success';
$string[1] = 'Atividade inserida.';
}
else {
$string[0] = 'Failure';
$string[1] = 'Atividade não foi inserida com sucesso.';
}
}
else {
$model->attributes=$_POST['Atividade'];
$model->descricao=$_POST['Atividade']['desc'];
$model->prioridade="";
$model->status="standby";
$model->data = date("Y-m-d",strtotime(str_replace("/", "-",$_POST['Atividade']['dat'])));
if($model->save()){
$string[0] = 'Success';
$string[1] = 'Atividade inserida.';
}
else {
$string[0] = 'Failure';
$string[1] = 'Atividade não foi inserida com sucesso.';
}
}
}
}
echo $string[0].": ".$string[1];
}
função actionUpload(){
Yii::import("ext.EAjaxUpload.qqFileUploader");
$folder=Yii::app()->basePath.'/../upload/temp/';// folder for uploaded files
$allowedExtensions = array("jpg","jpeg","png");//array("jpg","jpeg","gif","exe","mov" and etc...
$sizeLimit = 10 * 1024 * 1024;// maximum file size in bytes
$uploader = new qqFileUploader($allowedExtensions, $sizeLimit);
$result = $uploader->handleUpload($folder);
$return = htmlspecialchars(json_encode($result), ENT_NOQUOTES);
$fileSize=filesize($folder.$result['filename']);//GETTING FILE SIZE
$fileName=$result['filename'];//GETTING FILE NAME
echo $return;// it's array
}
Arquivo Ajax.js está em anexo.
Desde já fico grato!