ホームページ > PHPフレームワーク > YII > yii フレームワークを使用してファイルのアップロードおよびダウンロード機能を実装する

yii フレームワークを使用してファイルのアップロードおよびダウンロード機能を実装する

王林
リリース: 2020-08-17 17:04:01
転載
3279 人が閲覧しました

yii フレームワークを使用してファイルのアップロードおよびダウンロード機能を実装する

1. CUploadedFile は単一ファイルのアップロードを実装します

(推奨チュートリアル: yii Framework)

(1) まず、モデル このクラスは、ファイル名 (フォーム モデルまたはアクティブ レコード モデル) を格納するための属性を宣言します。また、アップロードされたファイルに指定された拡張子が付いていることを確認するためのファイル検証ルールも宣言します。

class Item extends CActiveRecord
{
    public $image;
    // ... other attributes
 
    public function rules()
    {
        return array(
            array('image', 'file', 'types'=>'jpg, gif, png'),
        );
    }
}
ログイン後にコピー

(2) 次に、ユーザーによって送信されたデータを収集するためのアクション メソッドをコントローラー クラスに定義します。

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 graphictutorial)

(3) 最後に、アクション ビューを作成し、アップロードされたフィールドを生成します。

<?php echo CHtml::form(&#39;&#39;,&#39;post&#39;,array(&#39;enctype&#39;=>&#39;multipart/form-data&#39;)); ?>
...
<?php echo CHtml::activeFileField($model, &#39;image&#39;); ?>
...
<?php echo CHtml::endForm(); ?>
ログイン後にコピー

2. CUploadedFile は複数のファイルのアップロードを実装します

メソッド: ビュービューコード:

for($i=0;$i<3;$i++){
    //echo $form->fileField($model,&#39;xiangguan_tupian[]&#39;).&#39;<br/>&#39;;//这种方法不行
    //echo CHtml::activeFileField($model,&#39;xiangguan_tupian[]&#39;);//这种也不行
    //echo CHtml::fileField(&#39;xiangguan_tupian[]&#39;,&#39;&#39;,array(&#39;id&#39;=>&#39;xiangguan_tupian&#39;.$i)).&#39;&nbsp&#39;;//这种也不行
    echo CHtml::activeFileField($model,&#39;xiangguan_tupian[]&#39;,array(&#39;id&#39;=>&#39;xiangguan_tupian&#39;.$i));
}
?>
ログイン後にコピー

controller コントローラー側:アップロードは処理されています。

(学習ビデオの推奨:

php ビデオ チュートリアル

) キー ポイント:

$model=new Info;
// echo &#39;<hr><br>&#39;;
$obj_array=CUploadedFIle::getInstances($model,&#39;xiangguan_tupian&#39;);
//注意这里不是getInstance而是getInstances多了个s,这样得到的是一个包含CUploadedFile对象的数组
//print_r($obj_array);
foreach($obj_array as $k=>$v){
    $v->saveAs(Yii::app()->basePath.&#39;/&#39;.$k.&#39;_test.&#39;.$v->getExtensionName());
}
ログイン後にコピー

3. sendFile() を使用してファイルをダウンロードする

CUploadedFile::getInstance();    // 返回的是一个CUploadedFile对象,
CUploadeFile::getInstanceByName();   //返回的是一个CUploadedFile对象            
CUploadedFile::getInstances()    //返回的是一个值为CUploadedFile对象的数组
CUploadedFile::getInstancesByName();   //返回的是一个值为CUploadedFile对象的数组
ログイン後にコピー

以上がyii フレームワークを使用してファイルのアップロードおよびダウンロード機能を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート