2017-03-22 12 views
0

Ausblick:Multiple-Datei-Upload funktioniert nicht in yii2

<?php echo FileInput::widget([ 
'model' => $visaDocument, 
'attribute' => 'temp_image[]', 
'options' => ['multiple' => true] 

]); >

Modell:

Variable definiert:

public $temp_image; 

In Regeln:

[['temp_image'], 'file','extensions' => ' pdf, docx, odt, jpg, png','maxFiles' => 4], 

Erstellt eine Funktion:

public function upload($model, $id) { 

    $imageCount = SbhrmVisaDocument::find()->where(['visa_document_id' => $id])->count(); 



     foreach ($model->temp_image as $file) { 
      if($imageCount < 4){ 

       $image = new SbhrmVisaDocument(); 
       $image->save(); 
       $file->saveAs(\Yii::$app->BasePath . '/uploads/' . $file->name); 
       $image->visa_document_name = $file->name; 
       $image->emp_id = $id; 
       $image->save(); 
      } 
      ++$imageCount; 
     } 

     return true; 

} 

Controller:

$visaDocument->temp_image = UploadedFile::getInstances($visaDocument, 'temp_image'); 
     if(!empty($visaDocument->temp_image)){ 
     if (!$model->upload($visaDocument,$model->emp_id)) { 
      return; 

     } 


     if($model->validate()){ 
      $model->save(); 
      //$this->afterSaveSetting($model); 
      Yii::$app->session->setFlash('success','Request Submitted'); 
      return $this->redirect(\yii\helpers\Url::to(['visa-initiation/my-list'])); 
     } 
    } 

Aber wenn ich versuche, nur die letzte ausgewählte wurde .Ich gespeichert mehrere Dateien laden Sie einfach die http://demos.krajee.com/widget-details/fileinput Demo folgen.

+0

Dateien, die über AJAX oder direkt hochgeladen werden? –

+0

Durch direktes Hochladen – Dijo

Antwort

0

Ich denke, Sie sollten

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

hinzufügen wahrscheinlich das würde help.Have Sie bereits, dass inbegriffen?