№6 Dars — Faylni yuklash va namoyish qilish.

№6 Dars — Faylni yuklash va namoyish qilish.

№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.