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'), ); } }
(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)); } }
(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('','post',array('enctype'=>'multipart/form-data')); ?> ... <?php echo CHtml::activeFileField($model, 'image'); ?> ... <?php echo CHtml::endForm(); ?>
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,'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)); } ?>
contrôleur côté contrôleur : le téléchargement est traité.
(Recommandation vidéo d'apprentissage :
Tutoriel vidéo php$model=new Info; // echo '<hr><br>'; $obj_array=CUploadedFIle::getInstances($model,'xiangguan_tupian'); //注意这里不是getInstance而是getInstances多了个s,这样得到的是一个包含CUploadedFile对象的数组 //print_r($obj_array); foreach($obj_array as $k=>$v){ $v->saveAs(Yii::app()->basePath.'/'.$k.'_test.'.$v->getExtensionName()); }
3. Utilisez sendFile() pour télécharger des fichiers
CUploadedFile::getInstance(); // 返回的是一个CUploadedFile对象, CUploadeFile::getInstanceByName(); //返回的是一个CUploadedFile对象 CUploadedFile::getInstances() //返回的是一个值为CUploadedFile对象的数组 CUploadedFile::getInstancesByName(); //返回的是一个值为CUploadedFile对象的数组
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!