2013-08-27 53 views
0

我有Yii的一個問題:如何獲取文件類型和上傳的圖片的尺寸與誼

我有一個名爲Slider.php模型和一個叫做SliderController.php控制器。

我寫了這個代碼,以使用戶上傳圖片:

public function actionCreate() 
{ 
    $model=new Slider; 

    // Uncomment the following line if AJAX validation is needed 
    // $this->performAjaxValidation($model); 



    if(isset($_POST['Slider'])) 
    { 
     $model->attributes=$_POST['Slider']; 
     $model->image=CUploadedFile::getInstance($model, 'image'); 
     if($model->save()) { 
      if(strlen($model->image)>0) 
      { 
       $model->image->saveAs(Yii::app()->basePath.'/../uploads/slider/'.$model->image); 
      } 


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

    $this->render('create',array(
     'model'=>$model, 
    )); 
} 

,它工作正常。

我的問題是:如何獲得/返回視圖中的文件類型和大小?

請幫助我,因爲我瘋了。

感謝

回答

1

CUploadedFilesizetype屬性,您可以使用。由於信息裏面$model->image,你可以用

Size: <?= $model->image->size; ?> 
Type: <?= $model->image->type; ?> 

注意,類型以上是由客戶端上報的,所以用一個錯誤配置的客戶(無論是故意或意外),它不會是準確的訪問視圖。出於顯示的目的,這並不重要,但如果您將MIME類型存儲在某處供以後使用,則應在服務器端使用CFileHelper::getMimeType進行確定。

+0

我試圖在保存後var_dump $ model-> image。這是結果:'object(CUploadedFile)#55(7){[「_name」:「CUploadedFile」:private] => string(9)「image.jpg」[「_tempName」:「CUploadedFile」:private] = > string(14)「/ tmp/phpXsMufT」[「_type」:「CUploadedFile」:private] => string(10)「image/jpeg」[「_size」:「CUploadedFile」:private] => int(396318) [「_error」:「CUploadedFile」:private] => int(0)[「_e」:「CComponent」:private] => NULL [「_m」:「CComponent」:private] => t返回他們 –

+1

@ChristianInthedarkPasti你至少可以假裝你花了一些努力和**閱讀罰款手冊**:http://www.yiiframework.com/doc/api/1.1/CUploadedFile#getSize-detail –