Maison > cadre php > YII > Téléchargement et téléchargement de fichiers dans le framework Yii : implémenter les opérations liées aux fichiers

Téléchargement et téléchargement de fichiers dans le framework Yii : implémenter les opérations liées aux fichiers

王林
Libérer: 2023-06-21 09:44:26
original
1255 Les gens l'ont consulté

Yii framework est un framework MVC basé sur le langage PHP Ses principales fonctionnalités sont un développement rapide, une simplicité et une efficacité. Dans le développement de sites Web, le téléchargement et le téléchargement de fichiers sont une fonction courante. Cet article explique comment implémenter le téléchargement et le téléchargement de fichiers dans le framework Yii.

1. Téléchargement de fichiers

1. Préparation

Avant de télécharger des fichiers, nous devons effectuer les configurations pertinentes. Ouvrez le fichier config/main.php et ajoutez le code suivant au composant :

'components' => [
      'request' => [
        'parsers' => [
          'application/json' => 'yiiwebJsonParser',
          'multipart/form-data' => 'yiiwebMultipartFormDataParser',
        ],
      ],
        'request' => [
        'enableCsrfCookie' => false,
        'enableCsrfValidation' => false,
        'parsers' => [
          'multipart/form-data' => 'yiiwebMultipartFormDataParser',
        ],
      ],
        'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
        ],
      ],
 
  ],
Copier après la connexion

Ajoutez deux paramètres de requête au composant, à savoir parsers et activateCsrfValidation. parsers est l'analyseur de la requête. L'ajout de multipart/form-data indique que le téléchargement de fichiers est autorisé. EnableCsrfValidation signifie désactiver la vérification CSRF.

2. Implémenter le téléchargement de fichiers

Pour implémenter le téléchargement de fichiers dans le contrôleur, vous pouvez choisir la soumission de formulaire ou le téléchargement Ajax. Ici, nous prenons la soumission de formulaire comme exemple.

public function actionUpload()
    {
        $uploadModel = new UploadForm();
 
        if (Yii::$app->request->isPost) {
            $uploadModel->file = UploadedFile::getInstance($uploadModel, 'file');
            if ($uploadModel->upload()) {
                // file is uploaded successfully
                return;
            }
        }
 
        return $this->render('upload', ['model' => $uploadModel]);
    }
Copier après la connexion

Dans actionUpload, une classe modèle UploadForm pour le téléchargement de fichiers est instanciée. En même temps, Yii::$app->request->isPost est utilisé pour déterminer s'il s'agit d'une requête POST. Si tel est le cas, la méthode Yii::$app->request->getInstance() est utilisée. utilisé pour obtenir les informations sur le fichier, et appelez la méthode upload() pour télécharger des fichiers. Renvoie vrai si le téléchargement réussit, faux s'il échoue.

Le code d'implémentation de la classe UploadForm est le suivant :

class UploadForm extends yiiaseModel
    {
        /**
         * @var UploadedFile file attribute
         */
        public $file;
 
 
        /**
         * @return array the validation rules.
         */
        public function rules()
        {
            return [
                [['file'], 'file'],
            ];
        }
 
        public function upload()
        {
            if ($this->validate()) {
                $filePath = 'uploads/' . $this->file->baseName . '.' . $this->file->extension;
                $this->file->saveAs($filePath);
                return true;
            } else {
                return false;
            }
        }
    }
Copier après la connexion

Dans UploadForm, un fichier d'attributs publics est défini pour stocker les fichiers téléchargés. Dans le même temps, une méthode de règles est mise en place pour vérifier le fichier et télécharger le fichier après avoir réussi la vérification. Le chemin de téléchargement du fichier est 'uploads/' . $this->file->baseName '.'

3. Implémenter le téléchargement de fichiers

La fonction de téléchargement de fichiers est relativement simple à mettre en œuvre, il suffit de renvoyer le flux de fichiers directement dans le contrôleur.

public function actionDownload($file)
    {
        Yii::$app->response->sendFile($file);
    }
Copier après la connexion

Dans actionDownload, utilisez la méthode Yii::$app->response->sendFile() pour renvoyer le flux de fichiers. Où $file est le chemin du fichier.

2. Résumé

Cet article présente comment implémenter les fonctions de téléchargement et de téléchargement de fichiers dans le framework Yii, impliquant principalement la configuration, les opérations et les modèles associés de téléchargement et de téléchargement de fichiers. télécharger. Grâce à l'étude de cet article, nous aurons une compréhension et une familiarité plus approfondies avec les opérations sur les fichiers dans le framework Yii, et implémenterons les fonctions associées plus facilement et plus rapidement.

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