2016-09-06 39 views
7

Używam widgetu wejściowego pliku kartik w projekcie yii2.yii2 kartik FileInput - Plik wejściowy pusty

http://demos.krajee.com/widget-details/fileinput

Wszystko jest w porządku dopóki strona aktualizacja jest dostępna, gdzie wyświetlane są już wgrane obrazy dla danego stanowiska, korzystając z opcji „initialPreview”. Podgląd działa, ale po przesłaniu formularza dane wejściowe są puste, a formularz nie zostanie zatwierdzony. Poster Image (256x376) cannot be blank.

<?php 
    echo $form->field($model, 'posterImage')->widget(FileInput::classname(), [ 
     'options' => [ 
     'multiple' => true, 
     'accept' => 'image/*', 
     ], 
     'pluginOptions' => [ 
     'maxImageWidth' => 265, 
     'maxImageHeight' => 376, 
     'minImageWidth' => 265, 
     'minImageHeight' => 376, 
     'previewFileType' => 'image', 
     'allowedFileExtensions' => [ 
      'jpg', 'jpeg' 
      ], 
      'showUpload' => false, 
      'maxFileSize' => 200, 
      'maxFileCount' => 1, 
      'initialPreview' => [ 
      $model->posterImage ? Html::img($model->posterImage, ['width' => '100%']) : NULL, 
      ], 
      'initialPreviewConfig' => [ 
      ['url' => $model->posterImage], 
      ], 
      'initialPreviewAsData' => false, 
      'overwriteInitial' => true, 
       ] 
        ]); 
        ?> 
+0

można udostępniać 'model' klasę? –

+0

Nie sądzę, że ma to związek z klasą modelu (której nie mogę udostępnić). Chcę tylko, aby podgląd (który działa) został przesłany bez konieczności ponownego wybierania. – Ciprian

+0

czy sprawdziłeś 'skipOnEmpty' na regułach sprawdzania poprawności http://www.yiiframework.com/doc-2.0/guide-input-file-upload.html –

Odpowiedz

2

Można użyć skipOnEmpty na yii2 model zasad z updatescenarios

public function rules() 
    { 
     return [ 
      [['posterImage'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg'], 
     ]; 
    } 
+0

'[['PosterImage'], 'file', 'on' => 'update', 'skipOnEmpty' => true , 'extensions' => 'jpeg, jpg'], 'ale go nie pomija. – Ciprian

1

@ciprian initialPreview only show image. I nie pokazuj Plik wejściowy Obiekt do przesłania obrazu. Więc kiedy reupload, obiekt File będzie pusty, więc wyrzucić błąd

+0

Wiem, ale jak ustawić obiekt pliku? – Ciprian

+0

@ciprian, możesz odwołać się do tego samouczka, aby uzyskać więcej informacji. http://webtips.krajee.com/advanced-upload-using-yii2-fileinput-widget/ – dungphanxuan