آپلود فایلها


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


یک پوشه به نام‘uploads’ در پوشه اصلی ایجاد کنید.این پوشه تمام تصاویر آپلود شده را نگهداری خواهد کرد.برای آپلود یک فایل باید یک مدل وویژگی مدل را برای uploaded file instance ایجاد کنید.همچنین شما باید آپلود فایل را اعتبار سنجی کنید


گام اول---داخل پوشه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;
         }
      }
   }
?>

 

خصوصیت imageبرای نگهداری فایلهای اشیا استفاده میشود.قالب فایل مطمُن میشودکه فایل پسوندpng یاjpg دارد.تابع upload فایلهارا معتبر میکند ودر سرور ذخیره میکند


گام دوم---اکنون تابع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]);
}


گام سوم---زمانی که فرم ثبت شود،ماتابعyii\web\UploadedFile::getInstance() رابرای نشان دادن فایل آپلودشده بعنوان شیUploadedFile فراخوانی میکنیم.سپس فایل را اعتبارسنجی وروی سرورذخیره میکینیم
گام چهارم---سپس،یک فایلview به نامupload.php درپوشه views/site ایجاد کنید

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

 

گام پنجم---یک عکس برای آپلود انتخاب کنید،فایل روی سرور وداخل پوشه‘uploads’ ذخیره خواهدشد
 

 

 

نظر خود را اضافه نمایید

ارسال نظر به عنوان مهمان

0