Rangka kerja Yii ialah rangka kerja PHP yang sangat popular dengan fungsi berkuasa dan perpustakaan sambungan yang kaya. Memuat naik dan memuat turun fail adalah keperluan yang sangat biasa dalam aplikasi web, dan rangka kerja Yii menyediakan penyelesaian yang mudah dan mudah digunakan untuk mengendalikan tugasan ini.
Dalam rangka kerja Yii, operasi muat naik dan muat turun fail dilaksanakan melalui gelagat yang dilampirkan pada kelas model. Tingkah lakunya adalah untuk mengumpulkan beberapa kaedah dan sifat awam, yang kemudiannya boleh dilampirkan dengan mudah pada kelas yang perlu menggunakannya. Rangka kerja Yii menyediakan banyak gelagat yang dipratentukan, termasuk muat naik fail dan gelagat muat turun.
Muat naik fail
Muat naik fail ialah salah satu tugas biasa dalam aplikasi web dan banyak aplikasi perlu membenarkan pengguna memuat naik fail. Terdapat tingkah laku yang dipanggil FileUploadBehavior dalam rangka kerja Yii yang boleh digunakan untuk mengendalikan muat naik fail.
Gelagat FileUploadBehavior memerlukan harta awam ditakrifkan dalam kelas model sebelum menggunakannya. Harta ini akan digunakan untuk menyimpan fail yang dimuat naik. Sebagai contoh, berikut ialah kelas model yang mengandungi harta awam bernama fail:
use yiidbActiveRecord; use yiiwebUploadedFile; class Post extends ActiveRecord { public $file; // ... }
Untuk menggunakan FileUploadBehavior, lampirkannya pada kelas model. Pembina perlu menyediakan tatasusunan yang mengandungi beberapa pilihan konfigurasi. Berikut ialah beberapa pilihan penting:
use yiidbActiveRecord; use yiiwebUploadedFile; use yiiehaviorsTimestampBehavior; use yiiehaviorsBlameableBehavior; use yiiehaviorsFileUploadBehavior; class Post extends ActiveRecord { public $file; public function behaviors() { return [ TimestampBehavior::class, BlameableBehavior::class, [ 'class' => FileUploadBehavior::class, 'attribute' => 'file', 'filePath' => '@app/web/uploads/[[filename]].[[extension]]', ], ]; } // ... }
Kini, dengan menggunakan kaedah load() dalam model, fail yang dimuat naik akan disimpan secara automatik dalam atribut $file:
$post = new Post(); $post->load(Yii::$app->request->post()); if ($post->save()) { $filePath = $post->file->saveAs(); // ... }
FileUploadBehavior juga menyediakan pilihan lain yang berguna, Contohnya, hadkan jenis fail, saiz fail maksimum, dsb. Maklumat terperinci boleh didapati dalam dokumentasi rangka kerja Yii.
Muat Turun Fail
Muat turun fail juga merupakan tugas aplikasi web yang biasa. Kadangkala anda mahu pengguna boleh memuat turun sumber atau fail tertentu. Rangka kerja Yii menyediakan gelagat yang dipanggil FileDownloadBehavior untuk mengendalikan muat turun fail.
Untuk menggunakan FileDownloadBehavior, anda perlu mentakrifkan harta awam dalam kelas model untuk menyimpan laluan fail. Seterusnya, tambahkan tingkah laku pada model. Sama seperti FileUploadBehavior, FileDownloadBehavior juga perlu menyediakan beberapa pilihan konfigurasi, termasuk:
Berikut ialah contoh yang menunjukkan cara menggunakan FileDownloadBehavior untuk memuat turun fail daripada sifat $file model: Fail yang dimuat turun. Contohnya, kod berikut menunjukkan cara membuat pautan muat turun untuk atribut $file:
use yiidbActiveRecord; use yiiwebUploadedFile; use yiiehaviorsTimestampBehavior; use yiiehaviorsBlameableBehavior; use yiiehaviorsFileUploadBehavior; use yiiehaviorsFileDownloadBehavior; class Post extends ActiveRecord { public $file; public $filename; public function behaviors() { return [ TimestampBehavior::class, BlameableBehavior::class, [ 'class' => FileUploadBehavior::class, 'attribute' => 'file', 'filePath' => '@app/web/uploads/[[filename]].[[extension]]', ], [ 'class' => FileDownloadBehavior::class, 'attribute' => 'filename', 'basePath' => '@app/web/uploads', 'forceDownload' => true, ], ]; } // ... }
Dalam pengawal, anda boleh menggunakan kaedah muat turun() yang disediakan oleh FileDownloadBehavior untuk memuat turun fail:
<?= Html::a('Download', ['post/download', 'id' => $model->id], ['target' => '_blank']) ?>
Kesimpulan
Dalam rangka kerja Yii, pengendalian tugasan muat naik dan muat turun fail adalah sangat mudah. Anda boleh menggunakan dua gelagat, FileUploadBehavior dan FileDownloadBehavior, untuk mengendalikan tugasan ini. Tingkah laku ini menyediakan pelbagai pilihan dan fungsi, seperti pengesahan automatik, mengehadkan saiz dan jenis fail yang dimuat naik dan menetapkan pilihan muat turun fail. Dengan menggunakan alatan yang disediakan oleh rangka kerja Yii ini, tugasan muat naik dan muat turun fail boleh dicapai dengan mudah, menjadikan aplikasi web lebih fleksibel dan berkuasa.
Atas ialah kandungan terperinci Muat naik dan muat turun fail dalam rangka kerja Yii. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!