我遇到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,
));
}
它工作正常。
我的问题是:如何在视图中获取/返回文件类型和大小?
请帮帮我,因为我疯了。
由于
答案 0 :(得分:1)
CUploadedFile
具有您可以使用的size
和type
属性。由于信息位于$model->image
内,您可以使用
Size: <?= $model->image->size; ?>
Type: <?= $model->image->type; ?>
请注意,上述类型是由客户端报告的,因此对于配置错误的客户端(故意或偶然),它将不准确。出于显示目的,这并不重要,但如果您将MIME类型存储在某处以供以后使用,则应在服务器端使用CFileHelper::getMimeType
确定它。
答案 1 :(得分:0)
您还可以使用$ model-&gt; image-&gt; getExtensionName()获取扩展名。此方法返回文件扩展名。请查看以下链接中的文档。
http://www.yiiframework.com/doc/api/1.1/CUploadedFile#getExtensionName-detail