2017-04-30 76 views
-1

我的照片上传表单出现错误。 我有两个字段,一个用于多张照片,一个用于存档。PHP上传错误 - 为foreach提供的参数无效()

<input type="file" name="file[]" multiple="multiple" class="custom-file-input" id="file_upload_gallery" accept="image/*"/> 

<input type="file" name="file" class="custom-file-input" id="file_upload" accept="application/zip, application/rar" /> <span class="custom-file-control"> 

而且我的PHP脚本,抛出一个错误 - ()的foreach为无效的论点提供

<?php 
    if (!is_dir($_SERVER['DOCUMENT_ROOT']. '/user_uploads/' . $_POST['user_name'] . '/')){ 
     mkdir($_SERVER['DOCUMENT_ROOT']. '/user_uploads/' . $_POST['user_name'] . '/'); 
     foreach($_FILES['file']['name'] as $key=>$filename) { 
      print_r($_FILES); 
      if(move_uploaded_file($_FILES['file']['tmp_name'][$key], $_SERVER['DOCUMENT_ROOT']. '/user_uploads/' . $_POST['user_name'] . '/' . $filename)) { 
       $uploaded[] = $filename; 
      } 
     } 
     echo json_encode($uploaded);  
    } else { 
     foreach($_FILES['file']['name'] as $key=>$filename) { 
      print_r($_FILES); 
      if(move_uploaded_file($_FILES['file']['tmp_name'][$key], $_SERVER['DOCUMENT_ROOT']. '/user_uploads/' . $_POST['user_name'] . '/' . $filename)) { 
       $uploaded[] = $filename; 
      } 
     } 
     echo json_encode($uploaded);    
    } 
?> 

哪里出了问题?请帮忙! 谢谢!

+0

不会工作'的foreach($ _ FILES [ '文件[]']'只是做了'的print_r($ _ FILES)'shoudl告诉你这个数组是什么 – RiggsFolly

+2

在你的HTML表单中,你意识到上传输入值'file'会覆盖'file'的上传输入数组值吗?它使得第一个上传输入毫无意义,因为事情永远不会被读取 – Martin

回答

0

可能是您为两个输入使用相同名称文件的名称存在问题。 ,也为这个

foreach($_FILES['file[]']['name'] as $key=>$filename) { 

你需要写

foreach($_FILES['file']['name'] as $key=>$filename) { // Omit the [] from file 
+2

我知道你是但是这只是一个评论,这种类型的答案吸引了倾注或被标记为 ___我没有DV___和我如果发生这种情况,您将丢失代表点,并花费更长时间才能找到需要对任何问题发表评论的50位代表。 在此之前,坚持要求很好的问题,因此在没有 需要澄清的情况下轻松回答。 http://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an-i-do-instead – RiggsFolly

+0

非常感谢你@RiggsFolly我会遵循现在起。 –

相关问题