Dans le développement Web, le téléchargement de fichiers est une exigence très courante. Dans le framework Yii, nous pouvons facilement implémenter des opérations sur les fichiers grâce aux fonctions intégrées de téléchargement et de téléchargement de fichiers. Dans cet article, nous présenterons comment télécharger et télécharger des fichiers dans le framework Yii.
1. Télécharger des fichiers
Le téléchargement de fichiers implique généralement deux processus : le rendu du formulaire de téléchargement et le traitement du téléchargement du fichier. Dans le framework Yii, nous pouvons restituer le formulaire de téléchargement en utilisant Active Form, puis utiliser UploadedFile dans le contrôleur backend pour gérer le processus de téléchargement de fichiers.
Pour télécharger un fichier, vous devez d'abord rendre le formulaire de téléchargement. Dans le framework Yii, nous pouvons utiliser Active Form pour générer rapidement des formulaires de téléchargement. Voici un exemple de formulaire simple de téléchargement de fichier :
$form = ActiveForm::begin([
'options' => ['enctype' => 'multipart/form-data']
]) ?>
= $form->field($model, 'file')->fileInput() ?>
# 🎜 🎜#Dans le code, nous utilisons les méthodes begin() et end() d'Active Form pour envelopper le formulaire et définir l'attribut 'enctype' est 'multipart/form-data' pour prendre en charge le téléchargement de fichiers. Ensuite, nous utilisons la méthode $form->field() pour générer le champ du formulaire. Le nom du champ est un attribut dans notre modèle, nous utilisons ici 'file'. Enfin, nous ajoutons un bouton de soumission sur lequel les utilisateurs peuvent cliquer pour télécharger des fichiers.{
$model = new FileModel(); if(Yii::$app->request->isPost){ $model->file = UploadedFile::getInstance($model, 'file'); if($model->upload()){ Yii::$app->session->setFlash('success', '文件上传成功'); }else{ Yii::$app->session->setFlash('error', '文件上传失败'); } } return $this->render('upload', ['model' => $model]);
{
if ($this->validate()) { $file_path = 'uploads/' . $this->file->baseName . '.' . $this->file->extension; if ($this->file->saveAs($file_path)) { return true; } else { return false; } } else { return false; }
# 🎜🎜#Dans le code, nous vérifions d'abord si le fichier téléchargé a réussi la vérification. Nous créons ensuite un chemin de fichier pour le fichier téléchargé (en combinant le nom du fichier et l'extension et en le stockant dans le dossier de téléchargement). Enfin, nous utilisons la méthode $this->file->saveAs() pour enregistrer le fichier sur le disque. Nous retournerons true si la sauvegarde est réussie, false sinon.
2. Télécharger des fichiers
Pour télécharger un fichier, nous devons fournir un lien de téléchargement sur lequel les utilisateurs peuvent cliquer pour télécharger le fichier. Dans le framework Yii, nous pouvons implémenter le téléchargement de fichiers en utilisant l'objet Response. Ce qui suit est un simple code de contrôleur de téléchargement de fichiers :
public function actionDownload()
{$file_path = 'uploads/test.txt'; if(file_exists($file_path)){ return Yii::$app->response->sendFile($file_path); }else{ throw new yiiwebNotFoundHttpException('文件不存在'); }
dans le code, on obtient d'abord le chemin du fichier à télécharger. Ensuite, nous vérifions si le fichier existe. Si le fichier existe, nous utilisons la méthode Yii::$app->response->sendFile() pour envoyer le fichier à l'utilisateur. Si le fichier n'existe pas, nous lancerons une exception.
3. Afficher les liens de fichiers dans la vue
Enfin, nous devons afficher les liens de téléchargement et de téléchargement de fichiers dans la vue. Voici un exemple simple de fichier d'affichage :
= $this->render('_upload_form', ['model' => $model]) ?>
Télécharger le fichier :
">test.txtCe 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!