2013-06-12 72 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']; 
}