№6 Dars — Faylni yuklash va namoyish qilish.
Web texnologiyasi olamida fayllar ro`li juda keng. Shuning uchun ham web dasturlar bunga alohida etibor qaratib kelishgan. Shu jumladan Yii ning o`zining qoida va uslublariga ega. Bir kichik misol orqali bu ishlar qanday amalga oshirilishini ko`rsatishga ruxsat bergaysiz. Buning uchun biz misolimizda rasmlarni yuklashga etiborimizni qaratamiz va shu yuklangan rasmni o`qib olish masalasini ham birgalikda ko`rgan bo`lamiz.
Birinchi navbatda biz qanday qilib fayl yuklashni ko`rib chiqamiz buning uchun jadvalimiz hosil qilingan bo`lishi kerak. Chunki ma`lumotlarni qayerdadir saqlashimiz kerak. Demak jadval yaratishdan boshlaymiz.
CREATE TABLE `pictures` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `pictures` VARCHAR(100) NULL DEFAULT NULL, `description` VARCHAR(100) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB
Va shu jadvalga mos model hosil qilamiz.
Hosil bo`lgan modelimizdagi tekshiruv qoidasiga quyidagicha kod qo`shamiz.
class Pictures extends CActiveRecord { public function rules(){ return array( //устанавливаем правила для файла, позволяющие загружать // только картинки! array('pictures', 'file', 'types'=>'jpg, gif, png'), ); } }Keyin controllerimizda quyidagicha kod aniqlaymiz, bu kod bizga faylni yuklab olishimiz va jadvalga ma`lumot qo`shishimiz uchun kerak bo`ladi.class SiteController extends CController { public function actionCreate(){ $model = new Pictures; if(isset($_POST['Pictures'])) { $model->attributes = $_POST['Pictures']; $uploadedFile = CUploadedFile::getInstance($model,'pictures'); $fileName = $uploadedFile; $model->pictures = $fileName; if($model->save()) { $model->pictures->saveAs( Yii::getPathOfAlias('webroot').'/images/uploaded/'.$fileName ); } } $this->render('create', array('model'=>$model)); } }Endi viewimizni hosil qilamiz.
'multipart/form-data')); ?> 10,'cols'=>25)); ?>Izoh: Fayl yuklayotgan vaqtda faqatgina uning tipini emas balki o`lchamini ham etiborga oladi. Bizning quyidagi misol uchun 1MB dan katta bo`lmagan faylni yuklay oladi.
public function rules(){ return array( array('image', 'file', 'types'=>'jpg, gif, png', 'maxSize' => 1048576), ); }Validatorlar haqida yanada chuqurroq bilmoqchi bo`lsangiz CFileValidator gipermurojaat orqali tanishishingiz mumkin.
Endi faylni yuklab olganimizdan keyin uni ekranga chiqarish masalasini ko`rib chiqamiz. Contrllerimizga quyidagicha kod yozamiz:
public function actionView() { // Jadvaldagi barcha ma`lumotlarni olish $model = Pictures::model()->findAll(); $this->render('view', array('model'=>$model)); }Barcha ma`lumotlarni yig`gandan keyin view pagiga jo`natmoqda. View pagimiz quyidagicha ko`rinishga ega bo`ladi:
"; echo " ".$value->description."
«;
}
?>
Endi siz View actioniga murojaat qilsangiz barcha yuklangan ma`lumotlariningiz ekranda namoyon bo`ladi.
Ilmga bo`lgan chanqoqligingiz sizni tark etmasin. E`tiboringiz uchun raxmat!
Manba:
Web Dasturlash
№6 Dars — Faylni yuklash va namoyish qilish.