برای آپلود چندین فایل مثل آپلود فایل تکی اقداماتمونو انجام می دیم. البته با مختصری تغییرات
ابتدا در فورم امکان آپلود تصویر را فراهم میکنیم:
$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);