Maison > cadre php > YII > le corps du texte

Chargement et téléchargement de fichiers dans le framework Yii : implémentation des opérations sur les fichiers

PHPz
Libérer: 2023-06-21 08:42:03
original
1658 Les gens l'ont consulté

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.

  1. Formulaire de téléchargement de rendu

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']
Copier après la connexion

]) ?>

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.

    Gestion du téléchargement de fichiers
Une fois que l'utilisateur clique sur le bouton de téléchargement, nous devons gérer le téléchargement de fichiers dans le contrôleur backend. Dans le framework Yii, nous pouvons utiliser la classe UploadedFile pour gérer le téléchargement de fichiers. Ce qui suit est un simple code de contrôleur de téléchargement de fichiers :

public function actionUpload()

{

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

}

dans le code, nous instancions d'abord une classe FileModel, puis vérifions si la requête actuelle est une requête POST. S'il s'agit d'une requête POST, nous utilisons la méthode UploadedFile::getInstance() pour obtenir le fichier téléchargé. « fichier » est le nom du champ du formulaire de téléchargement et le nom de l'attribut que nous avons défini dans le modèle. Nous utilisons ensuite la méthode $model->upload() pour gérer l'opération de téléchargement de fichier. Si le téléchargement du fichier réussit, nous définirons un message de réussite, sinon un message d'erreur. Enfin, nous renvoyons un fichier de vue et passons la variable $model en paramètre, qui contiendra les informations sur les résultats téléchargés.

    Gestion des opérations de téléchargement de fichiers
La dernière étape pour implémenter le téléchargement de fichiers consiste à implémenter la méthode $model->upload(). Ce qui suit est une implémentation simple de la méthode $model->upload() :

public function upload()

{

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

}

# 🎜🎜#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('文件不存在');
}
Copier après la connexion

}

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 :

Exemple de téléchargement et de téléchargement de fichiers

Téléchargement de fichiers

render('_upload_form', ['model' => $model]) ?>

download

Télécharger le fichier :

">test.txt

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:php.cn
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!