2016-06-23 29 views
1

Ich bin zu verrückt zu gehen .. Ich versuche Upload zwei Dateien, aber ohne ErgebnisHochladen von zwei Dateien

<input name="post_image" type="file" class="file"> 
<input name="post_image_2" type="file" class="file"> 

und PHP

if ($_FILES) { 
     foreach ($_FILES as $file => $array) { 
      if ($_FILES[$file]['error'] !== UPLOAD_ERR_OK) { 
       echo "upload error : " . $_FILES[$file]['error']; 
       die(); 
      } 
      $attach_id = media_handle_upload($file, $post_id); 
     } 
    } 

Aber es Schleife alle Dateien und ordnet Datei $ attach_id. Also habe ich versucht

foreach ($_FILES['post_image'] as $file => $array) { 
    if ($_FILES[$file]['error'] !== UPLOAD_ERR_OK) { 
     echo "upload error : " . $_FILES[$file]['error']; 
     die(); 
     } 
     $attach_id = media_handle_upload($file, $post_id); 
    }  

und das gleiche für $_FILES['post_image_2'] machen, aber dann bekam ich Undefined index: name, type, tmp_name, error... in..

I $ attach_id erwartet und $ attach_id_2 als Ergebnis

+0

beide Codes funktionieren nicht? –

+0

funktioniert zuerst, aber es loop alle Dateien und weist Datei an $ attach_id. Ich möchte zwei Dateien hochladen und sie für zwei Variablen zuweisen. – user3041764

+0

Sie haben zwei Eingabefelder, so dass es zwei Dateien loopen sollte? Alle Dateien bedeuten? –

Antwort

0

Sie auf diese Weise erreichen können:

if ($_FILES) { 
     $i = 1; 
     foreach ($_FILES as $file => $array) { 
      if ($_FILES[$file]['error'] !== UPLOAD_ERR_OK) { 
       echo "upload error : " . $_FILES[$file]['error']; 
       die(); 
      } 
      $var = 'attach_id_'.$i; 
      $$var = media_handle_upload($file, $post_id); 
      $i++; 
     } 
    } 
+0

Ja, aber ... wenn Benutzer nur die zweite Datei eingeben, wird die zweite Datei als attach_id_1 gespeichert. – user3041764

+0

also was willst du, wenn es keine Datei gibt, die du noch attach_id_1 behalten möchtest? –