程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> yii使用activeFileField控件實現上傳文件與圖片的方法

yii使用activeFileField控件實現上傳文件與圖片的方法

編輯:PHP綜合

本文實例講述了yii使用activeFileField控件實現上傳文件與圖片的方法。分享給大家供大家參考,具體如下:

yii框架提供了activeFileField控件來完成上傳文件(當然也包括了上傳圖片)的操作,下面介紹yii的activeFileField使用方法。

1、函數原型:
復制代碼 代碼如下:public static string activeFileField(CModel $model, string $attribute, array $htmlOptions=array ( ))
2、調用例子:

(1)首先,設置form,這一步一 定要做,把form設置為'multipart/form-data',具體請看我的:

<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'books-form',
'enableAjaxValidation'=>false,
'htmlOptions'=>array('enctype'=>'multipart/form-data'),
));
?>

(2) 接著,在view下的form裡設置:

<div class="row">
<?php echo $form->labelEx($model,'BookImg'); ?>
<?php echo CHtml::activeFileField($model,'BookImg'); ?>
<?php echo $form->error($model,'BookImg'); ?>
</div>

(3) 如果你想預覽圖片,那麼請注意了,可以加上這麼一段:

<div class="row">
<?php echo '圖片預覽' ?>
<?php echo '<img src="http://www.XXXX.com/'.$model->BookImg.'" style="width:200px;height:300px;"/>'; ?>
</div>

(4)最後,需要在控制類裡加上下面的:

if($model->save())
{
$image=CUploadedFile::getInstance($model,'BookImg');
 if (is_object($image) && get_class($image)==='CUploadedFile')
 {
 $image->saveAs("D:/aaa/aa.jpg");//路徑必須真實存在,並且如果是linux系統,必須有修改權限
 }
$this->redirect(array('view','id'=>$model->BookId));
}

請注意:這裡是添加的時候使用的,修改的話要有所改變。

(5)限制上傳的文件必須是圖片,還有限制圖片大小,那麼請到model層裡的rules新增這麼一句:

array('BookImg', 'file','allowEmpty'=>true,
'types'=>'jpg, gif, png',
'maxSize'=>1024 * 1024 * 1, // 1MB
'tooLarge'=>'The file was larger than 1MB. Please upload a smaller file.',
)

希望本文所述對大家基於Yii框架的PHP程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved