2013-04-17 74 views
2

嗨即時嘗試創建一個腳本來上傳多個文件。目前爲止,所有文件都正在上傳。PHP獲取多個上傳文件的名稱

我現在的問題是我需要抓取上傳文件的每個文件名,所以我可以將它們插入到數據庫中。

這裏是我的html:

<form action="" method="post" enctype="multipart/form-data"> 

    <input type="file" name="image[]" multiple /> 
    <input type="submit" value="upload" /> 

這裏是PHP:

if (!empty($_FILES['image'])) { 
    $files = $_FILES['image']; 

    for($x = 0; $x < count($files['name']); $x++) { 
     $name  = $files['name'][$x]; 
     $tmp_name = $files['tmp_name'][$x]; 
     $size  = $files['size'][$x]; 

     if (move_uploaded_file($tmp_name, "../folder/" .$name)) { 
      echo $name, ' <progress id="bar" value="100" max="100"> </progress> done <br />'; 
     } 
    } 
} 

真希望有人能幫助我與此有關。 /JL

回答

1

感謝您的幫助,我得到它通過簡單地創建變量工作:

$image_1 = (print_r($files['name'][0], true)); 
$image_2 = (print_r($files['name'][1], true)); 
$image_3 = (print_r($files['name'][2], true)); 
3

你有你的索引倒退。 $_FILES是一個數組,每個上傳文件都有一個元素。這些元素中的每一個都是包含該文件信息的關聯數組。所以count($files['name'])count($files)$files['name'][$x]$files[$x]['name'](以及類似的其他屬性,也可以使用一個foreach循環:

foreach ($_FILES as $file) { 
    $name  = $file['name']; 
    $tmp_name = $file['tmp_name']; 
    $size  = $file['size']; 

    if (move_uploaded_file($tmp_name, "../folder/" .$name)) { 
     echo $name, ' <progress id="bar" value="100" max="100"> </progress> done <br />'; 
    } 
} 
1

我覺得glob()功能可以幫助:

<?php 
    foreach(glob("*.jpg") as $picture) 
    { 
     echo $picture.'<br />'; 
    } 
?> 

演示結果:

pic1.jpg 
pic2.jpg 
pic3.jpg 
pic4.jpg 
... 

一定要更改文件路徑並在必要時擴展。

+0

這工作,但不正是我一直在尋找。但thx。 – megaman