public function run() { if (isset($this->modelId) && isset($this->model) && !$this->model->isNewRecord) { /** @var $fileModel File*/ $fileModel = \Yii::createObject(File::className()); $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); $files = $fileModel->find()->where(['model' => get_class($this->model), 'model_id' => $this->modelId])->all(); $initialPreview = $initialPreviewConfig = []; foreach ($files as $file) { $initialPreview[] = "<img src='" . \Yii::$app->params['imageDomain'] . '/' . $file->url . "' class='file-preview-image'>"; $initialPreviewConfig[] = ['caption' => $file->name, 'url' => Url::to(['/system/widgets/file-upload/delete', 'id' => $file->file_id])]; } echo $form->field($fileModel, 'files[]')->widget(FileInput::classname(), ['options' => ['multiple' => true], 'pluginOptions' => ['initialPreview' => $initialPreview, 'initialPreviewConfig' => $initialPreviewConfig, 'overwriteInitial' => false, 'uploadUrl' => Url::to(['/system/widgets/file-upload/upload']), 'uploadExtraData' => ['model' => get_class($this->model), 'modelId' => $this->modelId], 'maxFileCount' => 10, 'allowedFileExtensions' => ['jpg', 'gif', 'png']]]); $form::end(); } }
/** * Lists all Setting models. * @return mixed */ public function actionUpload() { $fileModel = Yii::createObject(File::className()); $imagesArray = $fileModel->getUploadImages(); foreach ($imagesArray as $image) { $fileModel->model = Yii::$app->request->post('model'); $fileModel->model_id = Yii::$app->request->post('modelId'); $fileModel->type = 1; $fileModel->name = $image['title']; $fileModel->url = $image['pic']; if (!$fileModel->save()) { return json_encode(['error' => Yii::t('catalog', 'save images to database fail.')]); } } return json_encode([]); }