【问题标题】:Uploading multiply files in PHP在 PHP 中上传多个文件
【发布时间】:2018-01-26 00:03:05
【问题描述】:


最近我遇到了通过 PHP 上传多个文件的问题。
在某处我看到了一些指导如何做到这一点,所以最后我是这样结束的:

$total = count($_FILES['ufile']['name'][$i]);
$target = "gallery/";
for($i=0; $i<$total; $i++) {
        if(($_FILES['ufile']['type'][$i]== 'image/jpeg')
        ||($_FILES['ufile']['type'][$i]== 'image/gif')
        ||($_FILES['ufile']['type'][$i]== 'image/png')
        &&($_FILES['ufile']['size'][$i]<2097152)
        &&($_FILES['ufile']['error'][$i] == 0)) {
                $image = $_FILES['ufile']["name"][$i];
                $temp = explode(".", $_FILES['ufile']["name"][$i]);
                $gallery_img[$i] = round(microtime(true)) . '.' . end($temp); //gallery is ready
                $final_gallery[$i] = $gallery_img[$i] . ", ";
                move_uploaded_file($_FILES['ufile']["tmp_name"][$i], $target . $gallery_img[$i]);
                $wszystko_OK = true;
    }
}

不幸的是,它不起作用。我不知道如何修复该代码。甚至可以在数组中使用 $_FILES 进行操作吗?我是 PHP 新手,所以如果你能解释一下如何做到这一点。

$temp = explode(".", $_FILES['ufile']["name"][$i]);
$gallery_img[$i] = round(microtime(true)) . '.' . end($temp);

^这段代码当然是用来生成随机文件名的,以免它们之间产生任何冲突。

$final_gallery[$i] = $gallery_img[$i] . ", ";

^这实际上是将所有这些文件名收集到变量中。我希望它看起来像这样:

1502916633.png、1502916893.png、1502916926.jpg

然后我会将这个变量插入到我的 MySQL 数据库中,然后读取它,删除逗号符号并显示多个图像。 提前感谢您的帮助!

【问题讨论】:

  • 你的代码有一个问题,你用[$i]定义$total,而$i还没有被定义。
  • 我以为我定义了 $i,当我制作循环时。
  • PHP 不是这样工作的。你需要在使用之前定义$i。定义$total后循环执行。
  • 好的,现在它正在工作,但是在带有图像的文件夹中,我只有其中一个(我选择了三个图像)但是,在数据库中而不是一堆随机文件名中,我只有“数组”。

标签: php mysql file loops upload


【解决方案1】:

您在 for() 语句中定义 $i。所以,在它未定义之前。使用计数($_FILES['ufile']);定义 $total。

【讨论】:

    【解决方案2】:

    计算粘贴的代码后,您应该更改:

    $total = count($_FILES['ufile']['name'][$i]);
    

    通过这个:

    $total = count($_FILES);
    

    【讨论】:

      【解决方案3】:

      只需使用以下代码计算文件总数

      <?php
        $total = count($_FILES);
        ?>

      【讨论】:

      • 好吧,我改了代码,但不管怎样,文件夹里只有一个文件。但是,在数据库而不是一堆随机文件名中,我只有“数组”。
      • 只需更改您的代码,使用这个 100 % 肯定 $total = count($_FILES['ufile']['name']);
      猜你喜欢
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-11
      • 2014-05-10
      • 2019-11-26
      • 1970-01-01
      相关资源
      最近更新 更多