久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Yii上傳文件(頭像)詳解(一)

 HiLinz 2014-09-18
yii框架提供了activeFileField控件來完成上傳文件(當(dāng)然也包括了上傳圖片)的操作


1,、函數(shù)原型:
public static string activeFileField(CModel $model, string $attribute, array $htmlOptions=array ());

2、調(diào)用例子:
(1)首先,設(shè)置form,,這一步一 定要做,,把form設(shè)置為’multipart/form-data’,,具體請(qǐng)看我的:
Php代碼  收藏代碼
  1. <?php $form=$this->beginWidget('CActiveForm'array(  
  2.     'id'=>'user-form',  
  3.     'enableAjaxValidation'=>false,  
  4.     'htmlOptions'=>array('enctype'=>'multipart/form-data'),  
  5. )); ?>  

注:id的作用,。
(2) 接著,,在view下的form里設(shè)置:
Php代碼  收藏代碼
  1. <div class="row">  
  2.     <?php echo $form->labelEx($model,'avatar'); ?>  
  3.     <?php echo CHtml::activeFileField($model,'avatar'); ?>  
  4.     <?php echo $form->error($model,'avatar'); ?>  
  5. </div>  

最后,加上提交按鈕,。
Php代碼  收藏代碼
  1. <div class="row buttons">  
  2.         <?php echo CHtml::submitButton($model->isNewRecord ? '立即創(chuàng)建' : '保存修改'); ?>  
  3. </div>  
  4.   
  5. <?php $this->endWidget(); ?>  

(3) 如果你想預(yù)覽圖片,,那么請(qǐng)注意了,可以加上這么一段:
Php代碼  收藏代碼
  1. <div class="row">  
  2.         <?php echo '圖片預(yù)覽'; ?>  
  3.         <?php echo '<img src="http://localhost/../'.$model->avatar.'" style="width:200px; height:300px;" />'; ?>  
  4.     </div>  

(4)最后,,需要在控制類里加上下面的:
Php代碼  收藏代碼
  1. $image = CUploadedFile::getInstance($model'avatar');  
  2. ifis_object($image) && get_class($image) === 'CUploadedFile' ){  
  3.     $model->avatar = '自己設(shè)置的文件名'.'.jpg';  
  4. }else{  
  5.     $model->avatar = 'NoPic.jpg';  
  6. }  
  7. if$model->save() ){  
  8.     if(is_object($image) && get_class($image) === 'CUploadedFile'){  
  9.         $image->saveAs(Yii::app()->basePath.'/../uploads/'.$model->avatar);  
  10.     }  
  11.     $this->redirect(array('view','id'=>$model->userId));  
  12. }  

注:?jiǎn)柫朔奖阄募芾?,建議這樣使用  $image->saveAs(‘./assets/upload/’.$imageName) ,保證assets目錄下存在upload目錄

版本二:
Php代碼  收藏代碼
  1. public function beforeSave()  
  2.     {  
  3.         if($file=CUploadedFile::getInstance($this,'uploadedFile'))  
  4.         {  
  5.             $this->file_name=$file->name;  
  6.             $this->file_type=$file->type;  
  7.             $this->file_size=$file->size;  
  8.             $this->file_content=file_get_contents($file->tempName);  
  9.         }  
  10.         return parent::beforeSave();  
  11.     }  


(5)限制上傳的文件必須是圖片,,還有限制圖片大小,那么請(qǐng)到model層里的rules新增這么一句:
Php代碼  收藏代碼
  1. array('avatar',   
  2.     'file',   
  3.     'allowEmpty'=>true,  
  4.     'types'=>'jpg,gif,png',  
  5.     'maxSize'=>1024 * 1024 * 1,  
  6.     'tooLarge'=>'頭像最大不超過1MB,,請(qǐng)重新上傳!',  
  7. ),  

(6) 顯示圖片時(shí),,在view目錄中,使用CHtm::image()函數(shù)
CHtml::image($model->product_imgage,//保存圖片的名稱,,只要文件名正確 ,,yii默認(rèn)幫你查找圖片
‘產(chǎn)品圖片’, alt屬性,放在頁(yè)面顯示的該名稱
array(‘width’=>250,’height’=>120));  設(shè)置圖片大小

注:參考  http://www./archives/312



(二)展示及下載
1,,展示
Php代碼  收藏代碼
  1. <? echo CHtml::link(my_link_name,array('displaySavedImage','id'=>$model->primaryKey)); ?>  


2,,下載
Php代碼  收藏代碼
  1. public function actionDisplaySavedImage()  
  2. {  
  3.     $model=$this->loadModel($_GET['id']);  
  4.    
  5.     header('Pragma: public');  
  6.     header('Expires: 0');  
  7.     header('Cache-Control: must-revalidate, post-check=0, pre-check=0');  
  8.     header('Content-Transfer-Encoding: binary');  
  9.     header('Content-length: '.$model->file_size);  
  10.     header('Content-Type: '.$model->file_type);  
  11.     header('Content-Disposition: attachment; filename='.$model->file_name);  
  12.    
  13.         echo $model->file_content;  
  14. }  

參考:http://www./wiki/95/saving-files-to-a-blob-field-in-the-database/
yii框架提供了activeFileField控件來完成上傳文件(當(dāng)然也包括了上傳圖片)的操作


1、函數(shù)原型:
public static string activeFileField(CModel $model, string $attribute, array $htmlOptions=array ());

2,、調(diào)用例子:
(1)首先,,設(shè)置form,這一步一 定要做,,把form設(shè)置為’multipart/form-data’,,具體請(qǐng)看我的:
Php代碼  收藏代碼
  1. <?php $form=$this->beginWidget('CActiveForm'array(  
  2.     'id'=>'user-form',  
  3.     'enableAjaxValidation'=>false,  
  4.     'htmlOptions'=>array('enctype'=>'multipart/form-data'),  
  5. )); ?>  

注:id的作用。
(2) 接著,,在view下的form里設(shè)置:
Php代碼  收藏代碼
  1. <div class="row">  
  2.     <?php echo $form->labelEx($model,'avatar'); ?>  
  3.     <?php echo CHtml::activeFileField($model,'avatar'); ?>  
  4.     <?php echo $form->error($model,'avatar'); ?>  
  5. </div>  

最后,,加上提交按鈕。
Php代碼  收藏代碼
  1. <div class="row buttons">  
  2.         <?php echo CHtml::submitButton($model->isNewRecord ? '立即創(chuàng)建' : '保存修改'); ?>  
  3. </div>  
  4.   
  5. <?php $this->endWidget(); ?>  

(3) 如果你想預(yù)覽圖片,,那么請(qǐng)注意了,,可以加上這么一段:
Php代碼  收藏代碼
  1. <div class="row">  
  2.         <?php echo '圖片預(yù)覽'; ?>  
  3.         <?php echo '<img src="http://localhost/../'.$model->avatar.'" style="width:200px; height:300px;" />'; ?>  
  4.     </div>  

(4)最后,需要在控制類里加上下面的:
Php代碼  收藏代碼
  1. $image = CUploadedFile::getInstance($model'avatar');  
  2. ifis_object($image) && get_class($image) === 'CUploadedFile' ){  
  3.     $model->avatar = '自己設(shè)置的文件名'.'.jpg';  
  4. }else{  
  5.     $model->avatar = 'NoPic.jpg';  
  6. }  
  7. if$model->save() ){  
  8.     if(is_object($image) && get_class($image) === 'CUploadedFile'){  
  9.         $image->saveAs(Yii::app()->basePath.'/../uploads/'.$model->avatar);  
  10.     }  
  11.     $this->redirect(array('view','id'=>$model->userId));  
  12. }  

注:?jiǎn)柫朔奖阄募芾?,建議這樣使用  $image->saveAs(‘./assets/upload/’.$imageName) ,,保證assets目錄下存在upload目錄

版本二:
Php代碼  收藏代碼
  1. public function beforeSave()  
  2.     {  
  3.         if($file=CUploadedFile::getInstance($this,'uploadedFile'))  
  4.         {  
  5.             $this->file_name=$file->name;  
  6.             $this->file_type=$file->type;  
  7.             $this->file_size=$file->size;  
  8.             $this->file_content=file_get_contents($file->tempName);  
  9.         }  
  10.         return parent::beforeSave();  
  11.     }  


(5)限制上傳的文件必須是圖片,還有限制圖片大小,,那么請(qǐng)到model層里的rules新增這么一句:
Php代碼  收藏代碼
  1. array('avatar',   
  2.     'file',   
  3.     'allowEmpty'=>true,  
  4.     'types'=>'jpg,gif,png',  
  5.     'maxSize'=>1024 * 1024 * 1,  
  6.     'tooLarge'=>'頭像最大不超過1MB,,請(qǐng)重新上傳!',  
  7. ),  

(6) 顯示圖片時(shí),在view目錄中,,使用CHtm::image()函數(shù)
CHtml::image($model->product_imgage,//保存圖片的名稱,,只要文件名正確 ,,yii默認(rèn)幫你查找圖片
‘產(chǎn)品圖片’, alt屬性,放在頁(yè)面顯示的該名稱
array(‘width’=>250,’height’=>120));  設(shè)置圖片大小

注:參考  http://www./archives/312



(二)展示及下載
1,,展示
Php代碼  收藏代碼
  1. <? echo CHtml::link(my_link_name,array('displaySavedImage','id'=>$model->primaryKey)); ?>  


2,,下載
Php代碼  收藏代碼
  1. public function actionDisplaySavedImage()  
  2. {  
  3.     $model=$this->loadModel($_GET['id']);  
  4.    
  5.     header('Pragma: public');  
  6.     header('Expires: 0');  
  7.     header('Cache-Control: must-revalidate, post-check=0, pre-check=0');  
  8.     header('Content-Transfer-Encoding: binary');  
  9.     header('Content-length: '.$model->file_size);  
  10.     header('Content-Type: '.$model->file_type);  
  11.     header('Content-Disposition: attachment; filename='.$model->file_name);  
  12.    
  13.         echo $model->file_content;  
  14. }  

參考:http://www./wiki/95/saving-files-to-a-blob-field-in-the-database/

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多