2017-02-23 6 views
1

ich bereits eine Datei-Upload-Seite und es funktioniert, aber ich brauche ein anderes Feld erstellen Sie ein anderes Bild zu laden und seine nicht funktioniert ..yii2 laden 2 Bilder auf verschiedene Datenbankfelder

Dies ist in meinem _form und es funktioniert

<?= $form->field($model, 'file')->fileInput(['onchange'=>'readURL(this)'])->label(false) ?> 

I $ file2 in Modellen Datei definiert und hinzugefügt, um diese Zeile zu _form

<?= $form->field($model, 'file2')->fileInput(['onchange'=>'readURL(this)'])->label(false) ?> 

und das ist ein weiterer Teil mein Code in shopcontroller

if ($model->load(Yii::$app->request->post())) { 


      $model->file = UploadedFile::getInstance($model, 'file'); 
      $model->file2 = UploadedFile::getInstance($model, 'file2'); 

        if($model->file!='') 
        { 

         $model->ShopLogo = time().'.'.$model->file->extension; 

        } 

        if($model->file2!='') 
        { 

         $model->pic= time().'.'.$model->file2->extension; 

        } 

Einen weiteren Teil des

   $dir = 'web/shop/'.$model->Id; 

       if($model->file!='') 
       { 
        if(!file_exists($dir)) 
        { 
         mkdir($dir); 

        } 

        $model->file->saveAs($dir."/". $model->ShopLogo); 
       } 

       if($model->file2!='') 
       { 
        if(!file_exists($dir)) 
        { 
         mkdir($dir); 

        } 

        $model->file2->saveAs($dir."/". $model->pic); 

       } 

Was kann ich es beheben könnte tun Code-Datei?

Antwort

0

Die Funktion time() gibt die aktuelle Zeit zurück, die in der Anzahl der Sekunden seit der Unix-Epoche (1. Januar 1970 00:00:00 GMT) gemessen wurde.

Wenn beide Dateien derselben ext und die diference in der Zeit zwischen den

$model->ShopLogo = time().'.'.$model->file->extension; 

und

$model->pic= time().'.'.$model->file2->extension; 

haben weniger als eine Sekunde und

$model->ShopLogo = $model->pic 

und Sie schreiben Beide Dateien unter dem gleichen Dateinamen