2016-10-25 9 views
2

私はフォームを作成しています。php jquery clone入力フィールドが同じ列のdbに挿入されます

フォームにはいくつかのフィールドタイプがあります。

このうち、私はファイルをアップロードすることができるボックスをアップロードしています。

ファイルのアップロード入力に複数の文書を添付することができます。

ファイル名の提出時には、同じ列の をカンマで区切ってdbに保存する必要があります。単一のファイルについては

は、私はそれ、 を行う方法を知っているが、それはクローン化されているので、私は混乱しをしています。

<span class="button btn-primary"> Choose File </span> 
<input type="file" class="gui-file required" name="docs[]" onChange="document.getElementById('orderupload1').value = this.value;"> 
<input type="text" class="gui-input" name="orderupload1" id="orderupload1" placeholder="Attach Domcuments Here..." readonly> 

上記のコードと一部のJSでは、フォームとフィールドの集団がうまく機能します。

ここで問題は、入力したすべてのフィールドファイル名をカンマで区切って同じ列に挿入する方法です。

私は次のように単一のフィールドのためにすでにやった:デモ以下

$docs=$_FILES['docs[]']['name']; 

$temp_doc_name=$_FILES['docs[$i]']['tmp_name']; 

if($docs!=''){ 


    if ($temp_doc_name != ""){ 

    $newFilePath1 = "uploadFiles/" . $docs; 


    if(move_uploaded_file($temp_doc_name, $newFilePath1)) { 


    } 
    } 
    } 

$sql = "insert into students (documents) values(LAST_INSERT_ID(), '$docs')"; 

答えて

1

は、以下のようにforeachのであなたのコードを置き換えます。

foreach ($_FILES['docs']['name'] as $key => $val) { 
    if (move_uploaded_file($_FILES['docs']['tmp_name'][$key], $newFilePath1)) { 
     /* FILE IS UPLOADED SUCCESSFULLY */ 
    } 
} 
+0

ありがとうございました。私には、どのように進むかについての明確なアイデアがありました。 –

+0

うれしいです:) – Jazzzzz

1

チェックし、それに応じてコードを交換してください。

HTML

<html lang="en"> 
<head> 
    <meta charset="UTF-8" /> 
    <title>Multiple File Ppload with PHP</title> 
</head> 
<body> 
    <form action="" method="post" enctype="multipart/form-data"> 
    <input type="file" id="file" name="files[]" multiple="multiple" accept="image/*" /> 
    <input type="submit" value="Upload!" /> 
</form> 
</body> 
</html> 

PHPコード

$valid_formats = array("jpg", "png", "gif", "zip", "bmp"); 
$max_file_size = 1024*100; //100 kb 
$path = "uploads/"; // Upload directory 
$count = 0; 

if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){ 
    // Loop $_FILES to exeicute all files 
    foreach ($_FILES['files']['name'] as $f => $name) {  
     if ($_FILES['files']['error'][$f] == 4) { 
      continue; // Skip file if any error found 
     }   
     if ($_FILES['files']['error'][$f] == 0) {    
      if ($_FILES['files']['size'][$f] > $max_file_size) { 
       $message[] = "$name is too large!."; 
       continue; // Skip large files 
      } 
      elseif(! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats)){ 
       $message[] = "$name is not a valid format"; 
       continue; // Skip invalid file formats 
      } 
      else{ // No error found! Move uploaded files 
       if(move_uploaded_file($_FILES["files"]["tmp_name"][$f], $path.$name)) 
       $count++; // Number of successfully uploaded file 
      } 
     } 
    } 
} 
関連する問題