PHP 允许空字段的多文件上传

PHP multiple file upload that allows empty fields

我正在学习文件上传和PHP,如果我不能正确描述自己,请见谅。

我正在尝试创建一个最多可上传 5 张图片的表单。我的问题是不需要第 4 或第 5 个图像的逻辑运算符。目前如果我上传 4 张图片,程序会在第 3 张图片停止上传。

if ((move_uploaded_file($_FILES["image1"]["tmp_name"], $target_file.".".$image1FileType)
      && move_uploaded_file($_FILES["image2"]["tmp_name"], $target_file2.".".$image2FileType)
      && move_uploaded_file($_FILES["image3"]["tmp_name"], $target_file3.".".$image3FileType))
      || move_uploaded_file($_FILES["image4"]["tmp_name"], $target_file4.".".$image4FileType)
      || move_uploaded_file($_FILES["image5"]["tmp_name"], $target_file5.".".$image5FileType)
      )

你不应该这样上传你的文件。相反,用 forforeach 循环遍历它们,如果它们不为空,则一个一个地上传它们。

foreach($_FILES as $file) {
    if (!isset($file['tmp_name'])) {
        // File is empty so continue with the next file
        continue;
    }

    $nameArray = explode('.', $file['name']);
    $type = end($nameArray);
    $target_file = 'You name it how you want it';

    if (!move_uploaded_file($file['tmp_name'], $target_file . '.' . $type)) {
        echo 'File ' . $file['name'] . ' couldn\'t be uploaded<br>';
    }
}