Heim > PHP-Framework > YII > Hochladen und Herunterladen von Dateien im Yii-Framework: Implementieren Sie dateibezogene Vorgänge

Hochladen und Herunterladen von Dateien im Yii-Framework: Implementieren Sie dateibezogene Vorgänge

王林
Freigeben: 2023-06-21 09:44:26
Original
1249 Leute haben es durchsucht

Yii-Framework ist ein MVC-Framework, das auf der PHP-Sprache basiert. Seine Hauptmerkmale sind schnelle Entwicklung, Einfachheit und Effizienz. Bei der Website-Entwicklung sind das Hochladen und Herunterladen von Dateien eine häufige Funktion. In diesem Artikel wird erläutert, wie das Hochladen und Herunterladen von Dateien im Yii-Framework implementiert wird.

1. Datei-Upload

1. Vorbereitung

Vor dem Hochladen von Dateien müssen wir relevante Konfigurationen durchführen. Öffnen Sie die Datei config/main.php und fügen Sie der Komponente den folgenden Code hinzu:

'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' => [
        ],
      ],
 
  ],
Nach dem Login kopieren

Fügen Sie der Komponente zwei Anforderungsparameter hinzu, nämlich Parser und enableCsrfValidation. parsers ist der Parser der Anfrage. Das Hinzufügen von Multipart-/Formulardaten zeigt an, dass das Hochladen von Dateien zulässig ist. „enableCsrfValidation“ bedeutet, dass die CSRF-Überprüfung deaktiviert wird.

2. Datei-Upload implementieren

Datei-Upload im Controller implementieren, Sie können zwischen Formularübermittlung und Ajax-Upload wählen. Hier nehmen wir die Formularübermittlung als Beispiel.

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]);
    }
Nach dem Login kopieren

In actionUpload wird eine Modellklasse UploadForm zum Hochladen von Dateien instanziiert. Gleichzeitig wird Yii::$app->request->isPost verwendet, um festzustellen, ob es sich um eine POST-Anfrage handelt. Wenn ja, ist dies die Methode Yii::$app->request->getInstance() Wird zum Abrufen der Dateiinformationen verwendet und ruft die Methode upload() auf, um Dateien hochzuladen. Gibt true zurück, wenn der Upload erfolgreich war, false, wenn er fehlschlägt.

Der Implementierungscode der UploadForm-Klasse lautet wie folgt:

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;
            }
        }
    }
Nach dem Login kopieren

In UploadForm wird eine öffentliche Attributdatei zum Speichern hochgeladener Dateien festgelegt. Gleichzeitig wird eine Regelmethode eingerichtet, um die Datei zu überprüfen und die Datei nach bestandener Überprüfung hochzuladen. Der Pfad zum Hochladen der Datei lautet „$this->file->baseName“.

3. Datei-Download implementieren

Die Datei-Download-Funktion ist relativ einfach zu implementieren, geben Sie einfach den Dateistream direkt in den Controller zurück.

public function actionDownload($file)
    {
        Yii::$app->response->sendFile($file);
    }
Nach dem Login kopieren

Verwenden Sie in actionDownload die Methode Yii::$app->response->sendFile(), um den Dateistream zurückzugeben. Wobei $file der Dateipfad ist.

2. Zusammenfassung

In diesem Artikel wird erläutert, wie die Funktionen zum Hochladen und Herunterladen von Dateien im Yii-Framework implementiert werden. Dabei geht es hauptsächlich um die zugehörige Konfiguration, den Betrieb und das Design verwandter Modelle zum Hochladen und Herunterladen von Dateien. Durch das Studium dieses Artikels werden wir ein tieferes Verständnis und eine bessere Vertrautheit mit Dateioperationen im Yii-Framework erlangen und verwandte Funktionen bequemer und schneller implementieren.

Das obige ist der detaillierte Inhalt vonHochladen und Herunterladen von Dateien im Yii-Framework: Implementieren Sie dateibezogene Vorgänge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage