Maison > cadre php > YII > Utilisez le framework yii pour implémenter les fonctions de téléchargement et de téléchargement de fichiers

Utilisez le framework yii pour implémenter les fonctions de téléchargement et de téléchargement de fichiers

王林
Libérer: 2020-08-17 17:04:01
avant
3271 Les gens l'ont consulté

Utilisez le framework yii pour implémenter les fonctions de téléchargement et de téléchargement de fichiers

1. CUploadedFile implémente le téléchargement de fichiers uniques

(tutoriel recommandé : framework yii )

(1) Tout d'abord, dans le modèle La classe déclare un attribut pour stocker le nom du fichier (soit le modèle de formulaire, soit le modèle d'enregistrement actif). Déclarez également une règle de validation de fichier pour garantir que les fichiers téléchargés portent l'extension spécifiée.

class Item extends CActiveRecord
{
    public $image;
    // ... other attributes
 
    public function rules()
    {
        return array(
            array('image', 'file', 'types'=>'jpg, gif, png'),
        );
    }
}
Copier après la connexion

(2) Ensuite, définissez une méthode d'action dans la classe du contrôleur pour collecter les données soumises par l'utilisateur

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));
    }
}
Copier après la connexion

(tutoriels associés recommandés : tutoriel graphique php)

(3) Enfin, créez la vue action et générez un champ téléchargé.

<?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(); ?>
Copier après la connexion

2. CUploadedFile implémente plusieurs téléchargements de fichiers

Méthode : afficher le code :

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));
}
?>
Copier après la connexion

contrôleur côté contrôleur : le téléchargement est traité.

(Recommandation vidéo d'apprentissage :

Tutoriel vidéo php

)Points clés :

$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());
}
Copier après la connexion

3. Utilisez sendFile() pour télécharger des fichiers

CUploadedFile::getInstance();    // 返回的是一个CUploadedFile对象,
CUploadeFile::getInstanceByName();   //返回的是一个CUploadedFile对象            
CUploadedFile::getInstances()    //返回的是一个值为CUploadedFile对象的数组
CUploadedFile::getInstancesByName();   //返回的是一个值为CUploadedFile对象的数组
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal