sql >> Databáze >  >> NoSQL >> MongoDB

Uložte více obrazových souborů pomocí Widget Kartik FileInput

Zkuste toto:

Controller:název obrázku byste měli uložit do databáze('$model->urls')

public function actionUpload()
{
        $model = new Upload();

        if ($model->load(Yii::$app->request->post())) {
            $model->file = UploadedFile::getInstances($model, 'file');
            foreach ($model->file as $key => $file) {

                $file->saveAs('/uploads/'. $file->baseName . '.' . $file->extension);//Upload files to server
                $model->urls .= 'uploads/' . $file->baseName . '.' . $file->extension.'**';//Save file names in database- '**' is for separating images
            }
            $model->save();
            return $this->redirect(['view', 'id' => $model->id]);
        } else {
            return $this->render('upload', [
                'model' => $model,
            ]);
        }
}

Zobrazit

<?= $form->field($model, 'file[]')->widget(FileInput::classname(), [
'options' => ['multiple' => 'true'],
]) ?>

Model

class Upload extends Model
{
public $file;
public function rules()
{
    return [
        [['file'], 'file','maxFiles' => 6],
        [['urls'],'string'],

    ];
}

Další pohled na zobrazování obrázků

<?php
$images=explode('**',trim($model->urls));
foreach($images as $image)
{
     echo Html::img(Url::to('@web/' . $image, true));
}
?>


  1. Mangoose insertMany limit

  2. Jak vytvořit službu CUPS pro mongoDB?

  3. Třída případu Mongodb Document to Scala

  4. MongoDB Agregation spojuje pole řetězců do jednoho řetězce