2013-06-12 45 views
0

我想创建2个文件输入并将它们都上传到服务器。处理2个文件输入

<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代码 我用1个文件中这样做的已经:

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

而我不知道我需要更改或重复我的PHP脚本。

回答

1
$_FILES["file"] 

引用从

<input ... name="file"> 

上传的文件这样的0​​第一级是name S的HTML文件输入。您可以复制您的代码,并将每个$_FILES['file']更改为$_FILES['file1'](和重复代码中的$_FILES['file2']),或者循环访问$_FILES阵列 - 尽管这可能是安全风险,因为您可以轻易欺骗您的脚本存储多个两个文件。

0

随着你的HTML你有两个$ _FILES多维数组一个作为 $_FILES['file1'][] 引用和其他作为 $_FILES['file2'][]

在您的代码中执行var_dump($ _ FILES)以帮助询问正在提交的信息。

您可能需要复制该块,我根据你的榜样设置为文件1或使用foreach循环显示的代码,如

foreach($_FILES as $file) { 
    //reference each value using $file as follows. 
    $file['name']; 
    $file['size']; 
}