Rangka kerja Yii ialah rangka kerja MVC berdasarkan bahasa PHP Ciri utamanya ialah pembangunan pesat, kesederhanaan dan kecekapan. Dalam pembangunan laman web, muat naik dan muat turun fail adalah fungsi biasa Artikel ini akan memperkenalkan cara melaksanakan muat naik dan muat turun fail dalam rangka kerja Yii.
1. Muat naik fail
1. Kerja penyediaan
Sebelum memuat naik fail, kami perlu melakukan konfigurasi yang berkaitan. Buka fail config/main.php dan tambahkan kod berikut pada komponen:
'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' => [ ], ], ],
Tambah dua parameter permintaan pada komponen, iaitu parser dan enableCsrfValidation. parser ialah penghurai permintaan Menambahkan multipart/form-data menunjukkan bahawa memuat naik fail dibenarkan. enableCsrfValidation bermaksud mematikan pengesahan CSRF.
2. Laksanakan muat naik fail
Untuk melaksanakan muat naik fail dalam pengawal, anda boleh memilih penyerahan borang atau muat naik Ajax. Di sini kami mengambil penyerahan borang sebagai contoh.
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]); }
Dalam actionUpload, satu model kelas UploadForm untuk memuat naik fail dibuat seketika. Pada masa yang sama, Yii::$app->request->isPost digunakan untuk menentukan sama ada ia adalah permintaan POST Jika ya, kaedah Yii::$app->request->getInstance() ialah. digunakan untuk mendapatkan maklumat fail, dan Panggil kaedah muat naik() untuk memuat naik fail. Mengembalikan benar jika muat naik berjaya, palsu jika gagal.
Kod pelaksanaan kelas UploadForm adalah seperti berikut:
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; } } }
Dalam UploadForm, fail atribut awam ditetapkan untuk menyimpan fail yang dimuat naik. Pada masa yang sama, kaedah peraturan disediakan untuk mengesahkan fail dan memuat naik fail selepas lulus pengesahan. Laluan untuk muat naik fail ialah 'uploads/' .
3. Laksanakan muat turun fail
Fungsi muat turun fail agak mudah untuk dilaksanakan, cuma kembalikan aliran fail terus dalam pengawal.
public function actionDownload($file) { Yii::$app->response->sendFile($file); }
Dalam actionDownload, gunakan kaedah Yii::$app->response->sendFile() untuk mengembalikan strim fail. Di mana $file ialah laluan fail.
2. Ringkasan
Artikel ini memperkenalkan cara melaksanakan fungsi muat naik dan muat turun fail dalam rangka kerja Yii, terutamanya yang melibatkan konfigurasi, operasi dan reka bentuk yang berkaitan untuk muat naik dan muat turun fail. Melalui kajian artikel ini, kami akan mempunyai pemahaman yang lebih mendalam dan kebiasaan dengan operasi fail dalam rangka kerja Yii, dan melaksanakan fungsi berkaitan dengan lebih mudah dan cepat.
Atas ialah kandungan terperinci Muat naik dan muat turun fail dalam rangka kerja Yii: laksanakan operasi berkaitan fail. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!