Php 如何在Yii中上载文件。在控制器中,除了文件名,我无法获取文件详细信息

Php 如何在Yii中上载文件。在控制器中,除了文件名,我无法获取文件详细信息,php,yii,Php,Yii,它显示了一个类似未定义变量fullImgSource的错误 有人能帮我吗 鉴于 Yii内置了对文件上传的支持。您不必担心$u文件 请通过 关于如果验证失败,则您的$model很可能未通过验证检查$model->getErrors,以获取有关失败原因的详细信息,因此save方法无法通过,并且$fullImgSource最终未被定义。您应该在save方法之后将代码用大括号括起来,因为下面的代码依赖于它才能成功 $cUploadedFile = CUploadedFile::getInstance($

它显示了一个类似未定义变量fullImgSource的错误

有人能帮我吗

鉴于


Yii内置了对文件上传的支持。您不必担心$u文件

请通过


关于

如果验证失败,则您的$model很可能未通过验证检查$model->getErrors,以获取有关失败原因的详细信息,因此save方法无法通过,并且$fullImgSource最终未被定义。您应该在save方法之后将代码用大括号括起来,因为下面的代码依赖于它才能成功

$cUploadedFile = CUploadedFile::getInstance($model, 'delete_YN');
if ($cUploadedFile) {
    $model->delete_YN  = $cUploadedFile;
}
if ($model->save()) {
    if ($cUploadedFile) {
        // Save file from temp to a specific location
        $cUploadedFile->saveAs('upload/' . $model->delete_YN);
    }
    $this->redirect(array('view','id'=>$model->id));
}
希望这能回答为什么你会犯这样的错误。现在,关于如何实际处理上载,您不必访问$u文件来获取上载。CUploadedFile::getInstance$model,'attribute_name'应该为您解决这个问题

$model = new Candidate;
if(isset($_POST['Candidate']))
{
  $model->attributes=$_POST['Candidate']; 
  $name=@$_FILES["Candidate"]["name"]["delete_YN"];
  $model->delete_YN  = CUploadedFile::getInstance($model,'delete_YN');
  if($model->save())
    $fullImgSource = Yii::getPathOfAlias('webroot').'/upload/'.$name;
  $model->delete_YN->saveAs($fullImgSource);
  $model->delete_YN = $name;
  $model->save();
  $this->redirect(array('view','id'=>$model->id));
}
$this->render('create',array('model'=>$model,));
$cUploadedFile = CUploadedFile::getInstance($model, 'delete_YN');
if ($cUploadedFile) {
    $model->delete_YN  = $cUploadedFile;
}
if ($model->save()) {
    if ($cUploadedFile) {
        // Save file from temp to a specific location
        $cUploadedFile->saveAs('upload/' . $model->delete_YN);
    }
    $this->redirect(array('view','id'=>$model->id));
}