处理2个文件输入

时间:2013-06-12 13:32:32

标签: php html

我想创建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脚本中更改或复制什么。

2 个答案:

答案 0 :(得分:1)

$_FILES["file"]

引用上传的文件
<input ... name="file">

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

答案 1 :(得分: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'];
}