Rumah > rangka kerja php > YII > Muat naik dan muat turun fail dalam rangka kerja Yii: laksanakan operasi berkaitan fail

Muat naik dan muat turun fail dalam rangka kerja Yii: laksanakan operasi berkaitan fail

王林
Lepaskan: 2023-06-21 09:44:26
asal
1247 orang telah melayarinya

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' => [
        ],
      ],
 
  ],
Salin selepas log masuk

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]);
    }
Salin selepas log masuk

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;
            }
        }
    }
Salin selepas log masuk

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);
    }
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan