مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

آپلود فایل ها در فریمورک Yii


شما به راحتی می توانید یک تابع آپلود فایل را به کمک yii\web\UploadedFile, models و yii\widgets\ActiveForm پیاده سازی کنید.

یک پوشه به نام ‘uploads’ در پوشه ریشه ایجاد کنید. این پوشه تمام تصاویر آپلود شده را نگه می دارد. برای آپلود یک فایل، شما باید یک مدل و یک attribute از مدل، برای یک نمونه، فایلِ آپلودشده، ایجاد کنید. همچنین باید فایل آپلودشذه را اعتبارسنجی یا validate کنید.

مرحله 1 - داخل پوشه models، یک فایل با نام UploadImageForm.php با محتوای زیر ایجاد کنید.

<?php
   namespace app\models;
   use yii\base\Model;
   class UploadImageForm extends Model {
      public $image;
      public function rules() {
         return [
            [['image'], 'file', 'skipOnEmpty' => false, 'extensions' => 'jpg, png'],
         ];
      }
      public function upload() {
         if ($this->validate()) {
            $this->image->saveAs('../uploads/' . $this->image->baseName . '.' .
               $this->image->extension);
            return true;
         } else {
            return false;
         }
      }
   }
?>

attribute  با نام image برای نگهداری نمونه فایل استفاده می شود. قانون اعتبارسنجی file  تضمین می کند که فایل یک پسوند PNG یا jpg داشته باشد. تابع upload فایل را اعتبارسنجی می کند و آن را بر روی سرور ذخیره می کند.

مرحله 2 - حال تابع actionUploadImage را به SiteController اضافه کنید.

public function actionUploadImage() {
   $model = new UploadImageForm();
   if (Yii::$app->request->isPost) {
      $model->image = UploadedFile::getInstance($model, 'image');
      if ($model->upload()) {
         // file is uploaded successfully
         echo "File successfully uploaded";
         return;
      }
   }
   return $this->render('upload', ['model' => $model]);
}

مرحله 3 - هنگامی که form ارسال می شود، ما تابع yii\web\UploadedFile::getInstance() را برای نمایش فایل آپلودشده به عنوان یک نمونه از UploadedFile فراخوانی می کنیم. سپس، فایل را validate می کنیم و آن را روی سرور ذخیره می کنیم.

مرحله 4 - بعد، یک فایل view به نام upload.php را در داخل دایرکتوری views/site ایجاد کنید.

<?php
   use yii\widgets\ActiveForm;
?>
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']])?>
<?= $form->field($model, 'image')->fileInput() ?>
   <button>Submit</button>
<?php ActiveForm::end() ?>

به یاد داشته باشید هنگام بارگذاری یک فایل، گزینه enctype را اضافه کنید. متد fileInput() کد HTML زیر را رندر می کند –

<input type = "file">

کد HTML بالا به کاربر اجازه می دهد تا فایل ها را انتخاب و آپلود کند.

مرحله 5 - حالا اگر شما به http://localhost:8080/index.php?r=site/upload-image بروید، آنچه که مشاهده می کنید مطابق با تصویر زیر می باشد.

مرحله 6 - یک تصویر را برای آپلود انتخاب کنید و روی دکمه “submit” کلیک کنید. فایل در سرور درون پوشه ‘uploads’ ذخیره می شود.

فصلِ: 14 , تعداد قسمت ها: 188 , سطح: صفر تا صد

این فصل در یک نگاه:

سلام . پیشنهاد میکنم حتما دموی دوره رو مشاهده کنید درباره فریم ورک Yii: در پاسخ به سوالات : آیا این فریم ورک سریع است؟ آیا این یک فریم ورک امن است؟ آیا این یک فریم ورک حرفه ای است؟ آیا ا…
فصلِ: 8 , تعداد قسمت ها: 77 , سطح: صفر تا صد

این فصل در یک نگاه:

  پیشنهاد میکنیم دمو دوره رو حتما مشاهده کنید با سلام خدمت دوستان عزیز . ابتدا عرض کنم که این دوره برای دوستانی آماده شده که میخوان وب اپلیکیشن های مدرنی رو طراحی بکنن و وارد بازار کار ط…

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید