다중 파일 업로드 + textInput-db에 저장하지 않음 (yii2)

크리스 파

yii2 basic을 사용 중이고 갤러리를 만들고 싶었 기 때문에 다중 파일 업로드를 사용했습니다. 텍스트 입력 ( '연도')을 추가 할 때까지 모두 잘 작동합니다.

GalleryController.php

    public function actionCreate()
    {
        $model = new MultipleUploadForm();
        $year;

        if (Yii::$app->request->isPost) {
            $model->files = UploadedFile::getInstances($model, 'files');
            if ($model->gaUpload()) {
                return $this->redirect(['index']);
            }
        }

        return $this->render('create', ['model' => $model]);
    }

MultipleUploadForm :

class MultipleUploadForm extends Model
{
    /**
     * @var UploadedFile[] files uploaded
     */
    public $files;
    public $year;

    public function rules()
    {
        return [
            [['files'], 'file', 'skipOnEmpty' => false, 'maxFiles' => 0],
            [['year'], 'string'],
        ];
    }
    public function gaUpload()
    {   
        if ($this->validate()) {
            foreach ($this->files as $file) {
                $model2 = new Gallery();
                $model2->img = $file->baseName . '_' . rand(100,999) . '.' . $file->extension;
                $model2->save_dir = 'uploads/gallery/';
                $model2->year = $this->year;
                $file->saveAs($model2->save_dir . $model2->img);

                $model2->save();

            }

            return true;
        } else {
            return false;
        }

    }
}

갤러리:

class Gallery extends \yii\db\ActiveRecord
{
    /**
     * {@inheritdoc}
     */
    public static function tableName()
    {
        return 'cgallery';
    }

    /**
     * {@inheritdoc}
     */
    public function rules()
    {
        return [
            [['year', 'img', 'save_dir'], 'required'],
            [['img', 'save_dir', 'year'], 'string', 'max' => 1024],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'year' => 'Year',
            'img' => 'Img',
            'save_dir' => 'Save Dir',
        ];
    }
}

_form.php :

    <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data'], ]); ?>

    <?= $form->field($model, 'year')->textInput()?>

    <?php
        echo '<label class="control-label">Add Pictures</label>';
        echo FileInput::widget([
            'model' => $model,
            'attribute' => 'files[]',
            'pluginOptions' => [
                'showRemove' => false,
                'uploadLabel' => 'Save',
                'uploadIcon' => '',
                'browseLabel' => '',
                'fileExtensions' => 'any',
            ],
            'options' => ['multiple' => true]
        ]);
    ?>

    <?php ActiveForm::end(); ?>

프로세스에서 '년'을 빼면 다음과 같이 $model2->year = '2010'작동합니다. 파일이 dir에 업로드되지만 데이터베이스에 저장되지 않는다는 것을 추가해야 할 수도 있습니다.

내가 뭘 잘못했는지 아는 사람이 있습니까?

편집하다:

도움을 주신 Wynton Franklin에게 감사드립니다. 해결책은 다음 줄을 추가하는 것이 었습니다.

$model->load(\Yii::$app->request->post());

GalleryController.php 변경 :

    public function actionCreate()
    {
        $model = new MultipleUploadForm();
        $model->load(\Yii::$app->request->post());

        if (Yii::$app->request->isPost) {    
            $model->files = UploadedFile::getInstances($model, 'files');
            if ($model->gaUpload()) {
                return $this->redirect(['index']);
            }
        }

        return $this->render('create', ['model' => $model]);
    }
윈턴 프랭클린

컨트롤러에서 year시작 세트가 아닙니다. 확인하십시오.

if (Yii::$app->request->isPost) {
            $model->year = $_POST[][] // or however you do it in yii
            $model->files = UploadedFile::getInstances($model, 'files');
            if ($model->gaUpload()) {
                return $this->redirect(['index']);
            }
        }

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Yii2에서 CKEditor 파일 업로드가 작동하지 않음

분류에서Dev

yii2에서 여러 파일 업로드가 작동하지 않음

분류에서Dev

다중 파일 업로드가 저장되지 않음

분류에서Dev

파일 업로드 작업 중 yii2의 데이터베이스에 데이터 저장

분류에서Dev

yii2 확인란 필드는 db에 데이터를 저장하지 않습니다.

분류에서Dev

yii2 advanced를 사용하고 있는데 파일 업로드가 작동하지 않습니다.

분류에서Dev

yii2의 다중 파일 업로드 API

분류에서Dev

다운로드 후 파일을 저장하지 않음

분류에서Dev

Yii2 : 모델 값이 DB에 저장되지 않았습니다.

분류에서Dev

파일 다운로드가 다운로드 폴더에 저장되지 않음

분류에서Dev

DownloadManager가 다운로드 폴더에 다운로드 한 파일을 저장하지 않음

분류에서Dev

Yii2 원격 서버에 파일을 저장 한 후 데이터를 업데이트하지 않는 고급

분류에서Dev

Kendo 파일 업로드는 IE11에 저장하기 위해 업로드 된 모든 파일을 컨트롤러에 제출하지 않습니다.

분류에서Dev

PHP를 사용하여 업로드 한 후 파일이 폴더에 저장되지 않습니다.

분류에서Dev

Symfony2 : 다중 업로드 파일이 작동하지 않습니다.

분류에서Dev

후 파일 다운로드 URL을 얼마나 안드로이드 중포 기지 저장 장치에 파일을 업로드? 작동하지 getDownloadUrl ()

분류에서Dev

Django가 Azure 저장소 컨테이너에 이미지 파일을 업로드하지 않음

분류에서Dev

yii2의 드롭 다운이 작동하지 않음

분류에서Dev

디스크에 저장하지 않고 FileResult에서 파일 다운로드

분류에서Dev

서버에서 작동하지 않는 PHP 다중 파일 업로드

분류에서Dev

공유 호스팅에 yii2 basic을 업로드하지만 작동하지 않음

분류에서Dev

공유 호스팅에 yii2 basic을 업로드하지만 작동하지 않음

분류에서Dev

Qt5 : HDD에 저장하지 않고 파일 다운로드

분류에서Dev

Nest js 업로드가 파일을 저장하지 않습니다.

분류에서Dev

Jquery 파일 업로드가 Select2에서 작동하지 않음

분류에서Dev

다중 파일 업로드 Validaiton JavaScript if 문이 작동하지 않음

분류에서Dev

풀 중 git repo에서 특정 파일을 다운로드하지 않음

분류에서Dev

먼저 디스크에 저장하지 않고 CSV 다운로드 : web2py에서 다운로드 한 파일 이름 변경

분류에서Dev

YII 파일 업로드가 작동하지 않음

Related 관련 기사

  1. 1

    Yii2에서 CKEditor 파일 업로드가 작동하지 않음

  2. 2

    yii2에서 여러 파일 업로드가 작동하지 않음

  3. 3

    다중 파일 업로드가 저장되지 않음

  4. 4

    파일 업로드 작업 중 yii2의 데이터베이스에 데이터 저장

  5. 5

    yii2 확인란 필드는 db에 데이터를 저장하지 않습니다.

  6. 6

    yii2 advanced를 사용하고 있는데 파일 업로드가 작동하지 않습니다.

  7. 7

    yii2의 다중 파일 업로드 API

  8. 8

    다운로드 후 파일을 저장하지 않음

  9. 9

    Yii2 : 모델 값이 DB에 저장되지 않았습니다.

  10. 10

    파일 다운로드가 다운로드 폴더에 저장되지 않음

  11. 11

    DownloadManager가 다운로드 폴더에 다운로드 한 파일을 저장하지 않음

  12. 12

    Yii2 원격 서버에 파일을 저장 한 후 데이터를 업데이트하지 않는 고급

  13. 13

    Kendo 파일 업로드는 IE11에 저장하기 위해 업로드 된 모든 파일을 컨트롤러에 제출하지 않습니다.

  14. 14

    PHP를 사용하여 업로드 한 후 파일이 폴더에 저장되지 않습니다.

  15. 15

    Symfony2 : 다중 업로드 파일이 작동하지 않습니다.

  16. 16

    후 파일 다운로드 URL을 얼마나 안드로이드 중포 기지 저장 장치에 파일을 업로드? 작동하지 getDownloadUrl ()

  17. 17

    Django가 Azure 저장소 컨테이너에 이미지 파일을 업로드하지 않음

  18. 18

    yii2의 드롭 다운이 작동하지 않음

  19. 19

    디스크에 저장하지 않고 FileResult에서 파일 다운로드

  20. 20

    서버에서 작동하지 않는 PHP 다중 파일 업로드

  21. 21

    공유 호스팅에 yii2 basic을 업로드하지만 작동하지 않음

  22. 22

    공유 호스팅에 yii2 basic을 업로드하지만 작동하지 않음

  23. 23

    Qt5 : HDD에 저장하지 않고 파일 다운로드

  24. 24

    Nest js 업로드가 파일을 저장하지 않습니다.

  25. 25

    Jquery 파일 업로드가 Select2에서 작동하지 않음

  26. 26

    다중 파일 업로드 Validaiton JavaScript if 문이 작동하지 않음

  27. 27

    풀 중 git repo에서 특정 파일을 다운로드하지 않음

  28. 28

    먼저 디스크에 저장하지 않고 CSV 다운로드 : web2py에서 다운로드 한 파일 이름 변경

  29. 29

    YII 파일 업로드가 작동하지 않음

뜨겁다태그

보관