Maison > Article > développement back-end > Cadre de développement PHP Tutoriel Yii Framework (15) Exemple de composant d'interface utilisateur MultiFileUpload
CMultiFileUpload est utilisé pour télécharger des fichiers et prend en charge le téléchargement de plusieurs fichiers à la fois. Ce composant d'interface utilisateur est basé sur le plugin jQuery Multi File Upload. De nombreux composants d'interface utilisateur intégrés de Yii sont basés sur JQuery, vous devez donc créer un répertoire d'actifs pour stocker les javascripts générés dynamiquement, etc.
Les informations sur le fichier téléchargé sont accessibles via $_FILES[widget-name]. Par exemple, le nom de CMultiFileUpload est "files" et les informations sur le fichier téléchargé sont accessibles via $_FILES ['files']. De plus, l'attribut Form contenant CMultiFileUpload doit définir enctype=multipart/form-data.
Cet exemple crée un répertoire de téléchargement pour stocker les fichiers téléchargés. Nous importons les fichiers téléchargés dans le répertoire via les paramètres du fichier de configuration.
Modifiez /config/main.php et ajoutez le code du projet
// application-level parameters that can be accessed // using Yii::app()->params['paramName'] 'params'=>require(dirname(__FILE__).'/params.php'),
Ajoutez quelques paramètres à l'application Le fichier pour stocker les paramètres est config/param.php
Définissez le fichier de téléchargement Le répertoire est le suivant :// this contains the application parameters that can be maintained via GUIreturn array(//upload directory'uploadDir' => 'upload/',);Dans le code, vous pouvez accéder à ce paramètre via Yii::app()->params['uploadDir']. , vous pouvez également utiliser upload directement / Comme constante fixe sans définir les paramètres du paramètre Application. Il n'est pas nécessaire d'utiliser Model dans cet exemple. Nous définissons View comme suit :
beginWidget('CActiveForm',array('method' =>'post','htmlOptions'=>array('enctype'=>'multipart/form-data'),)); ?> widget('CMultiFileUpload',array('name'=>'files','accept'=>'jpg|png','max'=>3,'remove'=>'Remove',//'denied'=>'', message that is displayed when a file type is not allowed//'duplicate'=>'', message that is displayed when a file appears twice'htmlOptions'=>array('size'=>25),)); ?>endWidget(); ?> findFiles() as $filename): ?> Yii::app()->baseUrl.'/'.Yii::app()->params['uploadDir'].$filename,array('rel'=>'external'));?>Utilisez CMultiFileUpload pour télécharger des fichiers avec l'extension jpg|png. Pour plus de détails, veuillez vous référer à Modifier son contrôleur/action correspondant.
class SiteController extends CController { /** * Index action is the default action in a controller. */ public function actionIndex() { if(isset($_FILES['files'])) { // delete old files foreach($this->findFiles() as $filename) unlink(Yii::app()->params['uploadDir'].$filename); //upload new files foreach($_FILES['files']['name'] as $key=>$filename) move_uploaded_file($_FILES['files']['tmp_name'][$key], Yii::app()->params['uploadDir'].$filename); } $this->render('index'); } /** * @return array filename */ public function findFiles() { return array_diff(scandir(Yii::app()->params['uploadDir']), array('.', '..')); } }La méthode Action supprime d'abord les fichiers dans le répertoire de téléchargement, puis stocke les fichiers téléchargés dans ce répertoire. Ce qui précède est le contenu du tutoriel du cadre de développement PHP Yii Framework (15) Exemple de composant d'interface utilisateur MultiFileUpload Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (. www.php.cn) !