【问题标题】:PHP upload error - Invalid argument supplied for foreach() [duplicate]PHP上传错误-为foreach()提供的参数无效[重复]
【发布时间】:2017-09-28 06:00:26
【问题描述】:

我的照片上传表单有误。 我有两个字段,一个用于多张照片,一个用于存档。

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

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

【问题讨论】:

  • 不会工作 foreach($_FILES['file[]'] 只是做一个 print_r($_FILES) 应该告诉你该数组中有什么
  • 在您的 HTML 表单中,您意识到上传输入值file 将覆盖上传输入数组值file?它使第一次上传输入毫无意义,因为事情永远不会可读

标签: php html


【解决方案1】:

这两个输入使用同名文件的名称可能有问题。 也为此

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

你需要写

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

【讨论】:

  • 我知道您缺少代表,但这只是一个评论。这种类型的答案会吸引反对票或被标记为我没有 DV,如果发生这种情况,您将失去代表点并且需要更长的时间才能达到您需要评论的 50 个代表任何问题。在那之前,坚持那些问得好,因此无需澄清就能轻松回答的问题。 meta.stackexchange.com/questions/214173/…
  • 非常感谢@RiggsFolly,我将从现在开始关注。
  • 你的回答暗示了我在代码中做错了什么
猜你喜欢
  • 1970-01-01
  • 2018-08-02
  • 1970-01-01
  • 2014-01-30
  • 2012-11-13
  • 2018-01-26
  • 1970-01-01
  • 2013-04-04
  • 1970-01-01
相关资源
最近更新 更多