Задать вопрос
@Iossarian

Как правильно настроить виджет 2amigos/yii2-file-upload-widget?

Добрый день. Собственно, сам виджет https://github.com/2amigos/yii2-file-upload-widget
Мне надо наладить загрузку изображений на странице создания новостей. Загружать их надо не вместе с созданием новости, а на странице просмотра. Использую базовый шаблон виджета с превью.
Имею такой код вида
<?php $form = ActiveForm::begin(['action' => '/payment-info/updoc','options' => ['method' => 'post']]); ?>
            <?= FileUpload::widget([
                'model' => $model,
                'attribute' => 'document',
                'url' => ['uploads/'], // your url, this is just for demo purposes,
                'options' => ['accept' => 'image/*'],
                'clientOptions' => [
                    'maxFileSize' => 2000000
                ],
                // Also, you can specify jQuery-File-Upload events
                // see: https://github.com/blueimp/jQuery-File-Upload/wiki/Options#processing-callback-options
                'clientEvents' => [
                    'fileuploaddone' => 'function(e, data) {
                                console.log(e);
                                console.log(data);
                            }',
                    'fileuploadfail' => 'function(e, data) {
                                console.log(e);
                                console.log(data);
                            }',
                ],
            ]); ?>
<?php ActiveForm::end(); ?>

Контроллер
public function actionUpdoc () {
        $model = new PaymentInfo();
        $directory = 'uploads' . DIRECTORY_SEPARATOR;
        $imageFile = UploadedFile::getInstance($model, 'document');
        if ($imageFile) {
            $uid = uniqid(time(), true);
            $fileName = $uid . '.' . $imageFile->extension;
            $filePath = $directory . $fileName;
            $imageFile->saveAs($filePath);
            $model->document = $filePath;  
            $path =  $directory . $fileName;
            return Json::encode([
                'files' => [
                    [
                        'name' => $fileName,
                        //'size' => $imageFile->size,
                        'url' => $path,
                        'thumbnailUrl' => $path,
                        'deleteUrl' => 'image-delete?name=' . $fileName,
                        'deleteType' => 'POST',
                    ],
                ],
            ]);
        }
    }

Файл ни сохраняется в папку, ни выводится превью изображения. Здесь тонкости именно с урлами и путями, так что если кто работал с этим виджетом дайте напутствие.
  • Вопрос задан
  • 883 просмотра
Подписаться 1 Средний 5 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы