簡體   English   中英

將多個文件上傳到服務器和

[英]Upload multiple files to server and

我的第一篇帖子很溫柔! 我已經嘗試過搜索這個並且有許多類似的帖子,但我似乎找不到任何與我的問題完全相同的東西,而且我已經在這里待了幾個小時! : - /

我正在使用PHP(5.3)和MySQL構建一個系統,部分功能是用戶需要根據以前的選擇上傳一些文件。 示例表格如下:

<form action="" method="post" enctype="multipart/form-data" id="uploadFiles">
<p>
<label for="file1">Upload file 1:</label>
<input type="file" name="file1" id="image">
</p>
<p>
<label for="file2">Upload file 2:</label>
<input type="file" name="file2" id="image2">
</p>
<p>
<input type="submit" name="upload" id="upload" value="Upload">
</p>
</form>

在這種情況下,用戶需要上傳兩個不同的文檔。 這一切都適合我,我可以將2個文件保存到服務器,然后通過循環“$ _FILES”將2條記錄插入到數據庫中的表中,文件名,文件類型(pdf,jpg)和用戶ID等我的上傳課程。

然而,我想要做的是以某種方式將名稱屬性<input name="foo">到插入的行中,以便“File 1”在名為document_type的列中具有“file1”,而“File 2”將具有“file2” ”。 這樣我就可以在MySQL中進行基本檢查,看看用戶是否上傳了相應的文件。

要切入追逐,有沒有辦法將INPUT“name”屬性分配或關聯到我的Upload類中的$ _FILES中的每個文件,這樣當我循環遍歷$ _FILES時,有一個唯一的document_type?

如果您需要有關我的設置的更多信息,請與我們聯系。

foreach ($_FILES as $inputName => $uploadedFile) {
    echo $inputName, ':', PHP_EOL;
    print_r($uploadedFile);
}

產量

file1:
Array (
    'name' => ...
    'tmp_name' => ...
    ...
)
file2:
Array (
    'name' => ...
    'tmp_name' => ...
    ...
)

INPUT文件的名稱應該是$_FILES數組中行的鍵。 例如,在您的示例中,$ _FILES數組應該有兩行可以像這樣引用: $_FILES['file1']$_FILES['file2'] 因此,當您循環遍歷數組時,只需查找該鍵值並將其插入行中即可。

最簡單的是不要為輸入使用不同的名稱,而是將相同的名稱寫為數組,例如name =“file []”。

我相信問題已得到解答,但是對於未來的建議,如果您需要有關CI中傳遞參數的更多信息,您可以使用Xdebug(我與Netbeans一起使用)。 我只使用它一個星期,這是一個很棒的工具!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM