2012-01-29 97 views
-4

我有一個簡單的PHP腳本,允許用戶上傳照片。我想知道如何轉換此腳本以使用戶能夠同時上傳多張照片。使用php多圖像上傳

這是PHP腳本的一部分:

if (isset($_FILES['images'], $_POST['album_id'])) { 

    $image = addslashes(file_get_contents($_FILES["images"]["tmp_name"])); 
    $image_name = addslashes($_FILES['images']['name']); 
    $image_size = getimagesize($_FILES["images"]["size"]); 
    $image_temp = addslashes($_FILES['images']['tmp_name']); 

    $allowed_ext = array('jpg', 'jpeg', 'png', 'gif'); 
    $ex = explode('.', $image_name); 
    $image_ext = strtolower(end($ex)); 

    $album_id = $_POST['album_id']; 

我需要什麼樣的變化,使這部分允許多個上傳? 我知道那裏應該有一個foreach循環,但我不知道該把它放在哪裏。

+4

首先,這是不會如圖所示('images []'將變成'$ _FILES ['images'] [0]');其次,'multiple =「multiple」'是一個無意義的屬性;第三,這裏有一百萬個教程 - 參見例如這:http://davidwalsh.name/multiple-file-upload(花了我大約5秒做一個谷歌搜索「多個上傳PHP」) – Piskvor 2012-01-29 23:38:03

+1

首先,我已經看了大約500,000的教程和百萬我仍然在問這個問題。其次,500,000中的20萬提出了multiple =「multiple」屬性。第三,如果你不幫忙不發表評論。 – Mike 2012-01-29 23:47:01

+0

不要告訴我該做什麼; 500k人說些什麼並不是如此;並提供了一個工作解決方案的鏈接。 – Piskvor 2012-01-29 23:48:08

回答

0

邁克這裏是一個粗略的解決方案,我不會在這裏寫整個代碼,但我會解釋它背後的邏輯。

您有兩種方法可以去手動命名每個字段(這意味着您僅限於手動添加的字段數)或使用數組。這兩種方法之間的唯一區別就是你將它們「指向」你的php腳本的方式。因此,如果您爲每個字段使用預定義的名稱,那麼您可以正常地調用它們,但是如果使用數組方法,那麼您將需要使用如下格式:$_FILES['FIELDNAME']['#ID'](#ID從0開始到創建的字段數 - 1,so你可以做一段時間,並通過他們所有)。

所以你有你的領域在HTML頁面,並在PHP頁面,你會通過使用for循環通過他們。因此您可以使用當前的PHP代碼進行單一上傳,然後遍歷每個領域並逐一上傳。這裏是一個例子:

for($i = 0; $i < count($_FILES['FILENAME']); $i++){ 

// USE YOUR UPLOAD SCRIPT HERE AND MAKE SURE YOU REPLACE YOUR CURRENT FILENAME to $_FILES['FILENAME'][$i] 

} 
+0

這解釋完美,它的工作原理。謝謝Ahoura。 – Mike 2012-01-30 01:13:13

+0

歡迎你。如果您覺得答案足夠好,請選擇它作爲答案 – 2012-01-30 01:47:28