1、CUploadedFile 實現(xiàn)單文件上傳

(推薦教程:yii框架)
(1)首先在模型類聲明一個屬性來儲存文件名稱(form model或active record model均可)。同樣聲明一個文件驗證規(guī)則,以確保被上傳文件指定的擴展名。
class Item extends CActiveRecord
{
public $image;
// ... other attributes
public function rules()
{
return array(
array('image', 'file', 'types'=>'jpg, gif, png'),
);
}
}(2)然后,在控制器類定義一個action方法收集用戶提交的數(shù)據(jù)
class ItemController extends CController
{
public function actionCreate()
{
$model=new Item;
if(isset($_POST['Item']))
{
$model->attributes=$_POST['Item'];
$model->image=CUploadedFile::getInstance($model,'image');
if($model->save())
{
$model->image->saveAs('path/to/localFile');
// redirect to success page
}
}
$this->render('create', array('model'=>$model));
}
}(相關教程推薦:php圖文教程)
(3)最后,創(chuàng)建action視圖并生成一個上傳的field。
<?php echo CHtml::form('','post',array('enctype'=>'multipart/form-data')); ?>
...
<?php echo CHtml::activeFileField($model, 'image'); ?>
...
<?php echo CHtml::endForm(); ?>2、CUploadedFile實現(xiàn)多文件上傳
方法:view視圖代碼:
for($i=0;$i<3;$i++){
//echo $form->fileField($model,'xiangguan_tupian[]').'<br/>';//這種方法不行
//echo CHtml::activeFileField($model,'xiangguan_tupian[]');//這種也不行
//echo CHtml::fileField('xiangguan_tupian[]','',array('id'=>'xiangguan_tupian'.$i)).' ';//這種也不行
echo CHtml::activeFileField($model,'xiangguan_tupian[]',array('id'=>'xiangguan_tupian'.$i));
}
?>controller控制器端:
$model=new Info;
// echo '<hr><br>';
$obj_array=CUploadedFIle::getInstances($model,'xiangguan_tupian');
//注意這里不是getInstance而是getInstances多了個s,這樣得到的是一個包含CUploadedFile對象的數(shù)組
//print_r($obj_array);
foreach($obj_array as $k=>$v){
$v->saveAs(Yii::app()->basePath.'/'.$k.'_test.'.$v->getExtensionName());
}多文件上傳處理完畢。
(學習視頻推薦:php視頻教程)
要點:
CUploadedFile::getInstance(); // 返回的是一個CUploadedFile對象, CUploadeFile::getInstanceByName(); //返回的是一個CUploadedFile對象 CUploadedFile::getInstances() //返回的是一個值為CUploadedFile對象的數(shù)組 CUploadedFile::getInstancesByName(); //返回的是一個值為CUploadedFile對象的數(shù)組
3、使用sendFile()來下載文件
$type = LFilter::checkString($_GET['t']);
$dataProvider = Book::model()->findByPk($id);
$content = $this->renderPartial('book',array(
'dataProvider' => $dataProvider,
'type' => $type,
),true,false);
Yii::app()->request->sendFile($dataProvider->name.'.'.$type,$content);
}
當前標題:利用yii框架實現(xiàn)文件上傳與下載功能
URL標題:http://www.yijiale78.com/article24/cghece.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供響應式網(wǎng)站、域名注冊、企業(yè)建站、網(wǎng)站營銷、靜態(tài)網(wǎng)站、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)