2017-08-08 69 views
0

我用这上传脚本http://www.dropzonejs.com上传的文件在for循环

上传PHP的部分是:

foreach($_POST["id"] as $key=>$value) 
{ 
    $id = trim(mysqli_real_escape_string($mysqli, $value)); 
    $pre_set = trim(mysqli_real_escape_string($mysqli, $_POST['pre_set'][$key])); 
    $keep_filename = trim(mysqli_real_escape_string($mysqli, $_POST['keep_filename'][$key])); 

    $ds   = DIRECTORY_SEPARATOR; 

    $storeFolder = '../uploads'; 

    if (!empty($_FILES)) 
    { 

     $tempFile = $_FILES['file']['tmp_name']; 

     $targetPath = dirname(__FILE__) . $ds. $storeFolder . $ds; 

     if($keep_filename == 'yes') 
     { 
      $targetFile = $targetPath. $pre_set.'_'.$id.'_'.$_FILES['file']['name']; 
     } 
     else 
     { 
      $targetFile = $targetPath. $pre_set.'_'.$id.'.'.pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION); 
     } 

     move_uploaded_file($tempFile,$targetFile); 

    } 
} 

当使用这种具有如图所示的文件低于标准形式是正确上传并改名:

<form action="includes/upload.php" class="dropzone"> 

<input type="hidden" class="form-control" id="id[]" name="id[]" value="'.$row['id'].'"> 
<input type="hidden" class="form-control" id="pre_set[]" name="pre_set[]" value="logo"> 
<input type="hidden" class="form-control" id="keep_filename[]" name="keep_filename[]" value="no"> 

</form> 

但是,当使用for循环的情况下,图片显示在上传窗口中,但文件未上传。 我没有得到任何错误(或者没有使用正确的参数看到它)

while($row = mysqli_fetch_array($res)) 
{ $i++; 
    echo' 

<div class="container"> 

<form action="includes/upload.php"> 

    <div class="form-group col-md-3">'; 
     if($i == 1) { echo '<label>Voeg foto toe</label>'; } echo' 
     <div class="dropzone dropzone_small" id="myId'.$i.'"> 
      <div class="fallback"> 
       <input type="hidden" class="form-control" id="id[]" name="id[]" value="xxxx"> 
       <input type="hidden" class="form-control" id="pre_set[]" name="pre_set[]" value="toolbox_"> 
       <input type="hidden" class="form-control" id="keep_filename[]" name="keep_filename[]" value="yes"> 
      </div> 
     </div> 
    </div> 
</form>'; 
} 

任何建议更改代码得到这个工作?

非常感谢帮助。

+0

开始与'enctype'属性,我想。 –

+0

它是http://www.dropzonejs.com的一部分,请参阅我的第一个没有建议编辑的示例。 – Muiter

+0

你想上传多个文件吗? –

回答

-1

您必须

<form action="includes/upload.php"> method="post" enctype="multipart/form-data"> 

//你的表单开始表单属性在这里

</form> 
+0

它是http://www.dropzonejs.com的一部分,看到我的第一个例子,没有你的建议编辑工作。 – Muiter