آپلود چندین فایل در Yii2

برای آپلود چندین فایل مثل آپلود فایل تکی اقداماتمونو انجام می دیم. البته با مختصری تغییرات

ابتدا در فورم امکان آپلود تصویر را فراهم میکنیم:

$form = ActiveForm::begin(
['options' => ['enctype' => 'multipart/form-data']
]);
$form->field($model, 'gallery_id[]')->fileInput(['multiple' => true, 'accept' => 'image/*'])
Html::submitButton($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'),
 ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']
)
 ActiveForm::end();

با استفاده از کد بالا امکان آپلود چندین تصویر را فراهم کردیم.

در مدل نیز باید تنظیمات مربوطه را مشخص کنیم.
در قسمت

  public function rules() {
        return [    
        ];
    }
[['gallery_id'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg', 'maxFiles' => 4],

همونطور که مشخصه می توانیم نوع فایلی که اجازه ارسال دارد را مشخص کنیم.
علاوه بر آن می توانیم حداکثر تعداد فایل و اجباری بودن یا نبودن را مشخص کنیم

در قسمت نهایی فایل های ارسالی را در محل مورد نظر ذخیره و در دیتا بیس ذخیره میکنیم

$MultiFile = UploadedFile::getInstances($model, 'gallery_id');
  foreach ($MultiFile as $key => $img) {
   $rnd = rand(1000000, 9999999);
  $time = time();
 $filename = "{$time}{$rnd}." . pathinfo($img->name, PATHINFO_EXTENSION);  
  $img->saveAs(Yii::$app->params['path']['gallery_upload'] . $filename);                                   

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *