2014-04-08 27 views
-1

我的控制器Sitecontroller.php,查看文件upload_new.php,型号是Resume_edit.phpYii无法重命名/移动上传文件

我得到这个错误:

Fatal error: Call to a member function saveAs() on a non-object in C:\wamp\www\yii\jobsite_orginal\protected\controllers\SiteController.php on line 406*

Sitecontroller.php

<?php 
class SiteController extends Controller 
{ 
    public function actionupload_new() 
    { 
    $user_id = 97; 
    $jobProfileM2 = new Resume_edit(); 
$jobProfileM2 = Resume_edit::model()->findByAttributes(array('user_id' => $user_id)); 
    if(isset($_POST['Resume_edit'])) 
     { 
     $jobProfileM2->attributes = $_POST['Resume_edit']; 
     $jobProfileM2->user_id = $user_id; 
     if($jobProfileM2->save()) 
      { 
      $jobProfileM2->user_id = $user_id; 
      Yii::app()->user->setFlash('success', "Resume Updated Successfully!"); 
     $time=time();                   $filename=CUploadedFile::getInstance($jobProfileM2,'resume'); 
$filename2=explode('.',$filename); 
      $filename3=$filename2[0].$time.'.'.$filename2[1]; 

      $jobProfileM2->resume=$filename3; 
      if($jobProfileM2->save()) 
       { 
      $jobProfileM2->resume->saveAs(Yii::app()->basePath.'/../resume/'.$filename3); 
       } 
      } 
     else 
      { 
       Yii::app()->user->setFlash('error', "Error,Canot save Data!"); 
      } 
    } 
    $this->render('upload_new', array('model' => $jobProfileM2)); 
} 
    } 
?> 

视图upload_new.php

<div class="form"> 
    <?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'login-form', 
'enableClientValidation'=>true, 
'htmlOptions' => array('enctype' => 'multipart/form-data'), 
    'clientOptions'=>array(
    'validateOnSubmit'=>true 
), 
    )); ?> 

<?php 
foreach(Yii::app()->user->getFlashes() as $key => $message) { 
    echo '<div class="flash-' . $key . '">' . $message . "</div>\n"; 
    } 
?> 
<p class="note">Fields with <span class="required">*</span> are required.</p> 
<div class="row"> 
<?php 
echo $form->labelEx($model, 'resume'); 
echo $form->fileField($model, 'resume'); 
echo $form->error($model, 'resume'); 
?> 
</div> 
<div class="row buttons"> 
    <?php echo CHtml::submitButton('Submit'); ?> 
</div> 
<?php $this->endWidget(); ?> 
</div> 

这是行406:

$jobProfileM2->resume->saveAs(Yii::app()->basePath.'/../resume/'.$filename3); 

我该如何解决这个问题?

回答

0

resume是您的模型Resume_edit的属性,属性没有功能saveAs()

如果要移动/重命名文件,请使用rename()方法。

$newFileName = Yii::app()->basePath.'/../resume/'.$filename3; 
@rename($jobProfileM2->resume, $newFileName); 
$jobProfileM2->resume = $filename3;