2016-06-23 49 views
1

我快要發瘋了..我想上傳兩個文件,但沒有結果上傳兩個文件

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

和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); 
     } 
    } 

但循環中的所有文件,並指定文件$ attach_id。於是,我就做

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); 
    }  

與同爲$_FILES['post_image_2'] 但後來我得到 Undefined index: name, type, tmp_name, error... in..

我預計$ attach_id和$ attach_id_2作爲結果

+0

這兩個代碼都不起作用? –

+0

第一次工作,但它會循環所有文件並將文件分配給$ attach_id。我想要上傳兩個文件並將其分配給兩個變量。 – user3041764

+0

你有兩個輸入字段,所以它應該循環兩個文件?所有文件的意思? –

回答

0

可以實現這種方式:

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

是的,但是...當用戶只填寫第二個文件輸入時,第二個文件將保存爲attach_id_1。 – user3041764

+0

那麼你想要什麼,如果沒有你想要保留attach_id_1的文件? –

相關問題