2016-05-20 4 views
3

htmlのフォーム送信を使用して、同じフィールド名を持つ複数のドキュメント(PDF、doc、txtなど)をアップロードしたいとします。 私はw35schools.comからPHP 5 File Uploadですべてを試しました。フォーム提出を使用して同じフィールド名を持つ複数のドキュメントをアップロード

<form action="upload.php" method="POST"> 
<div class="left"> 
    <h2>Detail 1</h2> 
     Name:<input type="text" name="txtName[]"><br> 
     Card No:<input type="text" name="txtCardNo[]"><br> 
     Date of Birth:<input type="text" name="txtBdate[]"><br> 
     Document:<input type="file" name="docs[]"><br> 
</div> 
<div class="left"> 
    <h2>Detail 2</h2> 
     Name:<input type="text" name="txtName[]"><br> 
     Card No:<input type="text" name="txtCardNo[]"><br> 
     Date of Birth:<input type="text" name="txtBdate[]"><br> 
     Document:<input type="file" name="docs[]"><br> 
</div> 
<div class="left"> 
    <h2>Detail 3</h2> 
     Name:<input type="text" name="txtName[]"><br> 
     Card No:<input type="text" name="txtCardNo[]"><br> 
     Date of Birth:<input type="text" name="txtBdate[]"><br> 
     Document:<input type="file" name="docs[]"><br> 
</div> 
<div class="clear"></div> 
<input type="submit" value="Submit"> 
</form> 

しかし、これらの複数のドキュメントをフォーム送信機能に渡す方法はわかりません。私はThis jsFiddleに同じコードを書いており、これをjavascriptを使用して提出する必要があります。

おかげ

答えて

3

(CodeIgniterの挿入)

if(!empty($_POST['txtName'])){    
     for($i=0; $i<count($_POST['txtName']); $i++){ 
      $cont['name'] = $_POST['txtName'][$i]; 
      $cont['cardno'] = $_POST['txtCardNo'][$i]; 
      $cont['dob'] = $_POST['txtBdate'][$i];    
      $cont['docs'] = str_replace(' ', '_',$_FILES['docs']['name'][$i]); 

      if($cont['docs'] != "") 
      {     
       move_uploaded_file($_FILES["docs"]["tmp_name"][$i], $target_path.$cont['docs']); 

      } 
      $this->db->insert('detail',$cont); 

     } 
     return true; 
    }else{ 
     return false; 
    } 
0

あなたは、ファイル要素の複数の属性を試すことができ、それはあなたからのenctypeが欠落している複数のfiles.Alsoを選択できるようになります。下図のようにあなたは、総ファイルやデータをカウントするループでPHPの関数を使用して、複数のファイルをアップロードすることができ

<form action="upload.php" method="POST" enctype="multipart/form-data"> 
    <div class="left"> 
     <h2>Detail 1</h2> 
      Name:<input type="text" name="txtName[]"><br> 
      Card No:<input type="text" name="txtCardNo[]"><br> 
      Date of Birth:<input type="text" name="txtBdate[]"><br> 

    </div> 
    <div class="left"> 
     <h2>Detail 2</h2> 
      Name:<input type="text" name="txtName[]"><br> 
      Card No:<input type="text" name="txtCardNo[]"><br> 
      Date of Birth:<input type="text" name="txtBdate[]"><br> 

    </div> 
    <div class="left"> 
     <h2>Detail 3</h2> 
      Name:<input type="text" name="txtName[]"><br> 
      Card No:<input type="text" name="txtCardNo[]"><br> 
      Date of Birth:<input type="text" name="txtBdate[]"><br> 

    </div> 
    <div> 
     Documents: <input type="file" name="docs" multiple="true"><br> 
    </div> 
    <div class="clear"></div> 
    <input type="submit" value="Submit"> 
    </form> 
+1

=「マルチパート/フォームのデータ」属性のenctypeを追加しようフォームタグに –

+0

返信いただきありがとうございますが、私はこれらのフィールドとファイルをまとめて、この質問でここで欲しいものである単一の送信機能にまとめて提出する必要があります。 –

+0

このenctype = "multipart/form-data"を試しましたか? –

関連する問題