0

我想创建 2 个文件输入并将它们都上传到服务器。我已经用 1 个文件这样做了:

<input type="file" name="file" id="file" accept="image/*" step="1">

而php脚本是这样的:

<?php
if ($_FILES["file"]["error"] > 0)
  echo "Error: " . $_FILES["file"]["error"] . "<br>";

else
{
    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "Stored in: " . $_FILES["file"]["tmp_name"];

    if (file_exists("upload/" . $_FILES["file"]["name"]))
        echo $_FILES["file"]["name"] . " already exists. ";
    else
    {
        move_uploaded_file($_FILES["file"]["tmp_name"],
        "upload/" . $_FILES["file"]["name"]);
        echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
    }
}
?>

但是现在当我想要 2 个输入时,我复制了 html 代码:

<input type="file" name="file1" id="file1" accept="image/*" step="1">
<input type="file" name="file2" id="file2" accept="image/*" step="1">

而且我不知道我需要在我的 php 脚本中更改或复制什么。

4

2 回答 2

1
$_FILES["file"]

引用上传的文件

<input ... name="file">

所以第一级$_FILES是 HTML 文件输入的names。您可以复制代码并将每个更改$_FILES['file']$_FILES['file1'](以及$_FILES['file2']在复制的代码中),或者循环遍历$_FILES数组 - 尽管这可能存在安全风险,因为您可以很容易地欺骗您的脚本存储两个以上的文件。

于 2013-06-12T13:37:23.303 回答
0

使用 html,您有两个 $_FILES 多维数组,一个被引用为 $_FILES['file1'][] ,另一个被引用为 $_FILES['file2'][].

在您的代码中执行 var_dump($_FILES) 将有助于询问正在提交的信息。

您可能必须复制此块,我已根据您的示例显示代码设置为 file1 或使用 foreach 循环,例如

foreach( $_FILES as $file ) {
   //reference each value using $file as follows.
   $file['name'];
   $file['size'];
}
于 2013-06-12T13:37:43.013 回答