2011-10-26 56 views
0

我一直在嘗試將多個文件上傳到一個文件夾並將名稱保存在數據庫表中。代碼如下:我需要獲取這些上傳文件的名稱。我知道我的代碼是胡扯:(獲取多個文件上傳文件的名稱

是否有通過上傳這些文件,仍然返回該文件名? 我需要這些名字能夠將它們插入到mysql表的方式來循環。

感謝。您的援助

​​

而且PHP腳本如下:

<?php 

    $target = "uploads/"; 
    $target = $target . basename($_FILES['pic1']['name']); 
    $target = $target . basename($_FILES['pic2']['name']); 
    $target = $target . basename($_FILES['pic3']['name']); 
    $target = $target . basename($_FILES['pic4']['name']); 

$pic1 =($_FILES['pic1']['name']); 
$pic2 =($_FILES['pic2']['name']); 
$pic3 =($_FILES['pic3']['name']); 
$pic4 =($_FILES['pic4']['name']); 

$con = mysql_connect("localhost", "root", ""); 
    if (!$con){ 
    die('Could not connect: ' . mysql_error()); 
    } 

    mysql_select_db("people", $con); 

    $sql="INSERT INTO mtpupload (name, age, pic1, pic2, pic3, pic4) 
    VALUES('$_POST[name]','$_POST[age]','$pic1', '$pic2', '$pic3', '$pic4')"; 

    //---------Here, I want to insert all the pictures----------//  
    if(move_uploaded_file($_FILES['pic1']['tmp_name'], $target)) { 
     //do nothing 
    } 
    if(move_uploaded_file($_FILES['pic2']['tmp_name'], $target)) { 
     //do nothingelse{ 
    }if(move_uploaded_file($_FILES['pic3']['tmp_name'], $target)) { 
     //do nothing echo "Sorry, the image was not moved from temp folder."; 
    }if(move_uploaded_file($_FILES['pic4']['tmp_name'], $target)) { 
     //do nothing 
     echo "The was a problem uploading one of your images."; 
    } 
    //--------------Ends here---------------------// 

    if (!mysql_query($sql,$con)){ 
    die('Error: ' . mysql_error()); 
    } 
    echo "1 record added"; 

    mysql_close($con) 
    ?> 

UPDATE:事實證明,此代碼正在工作,但只保存文件夾中的一個圖像。我認爲我的move_uploaded_file是錯誤的。任何指針?

再次感謝您的幫助。

+2

http://nl3.php.net/manual/en/control-structures.foreach.php –

+0

循環怎麼樣? –

+0

順便說一句,你的代碼沒有考慮到上傳兩個具有相同文件名的文件的情況。後者將簡單地覆蓋前者。 –

回答

1

感謝鄉親對你的建議,我終於得到了它的工作。我在很多地方使用$ target變量。將它重命名爲不同的變量有所幫助。

0

這個怎麼樣:

foreach ($_FILES as $file) { 
    echo $file['name']; // File name of file on user's computer 
    echo $file['tmp_name']; // Full path to the file on the server 
} 
1

也許這是有幫助的,使用array與文件的字段名和foreach

$fields = array('pic1', 'pic2', 'pic3', 'pic4'); 
$fileNames = array(); 

foreach($fields as $field) 
{ 
    $file = $_FILES[$field]; 
    # you can now process each file on it's own. 

    $fileNames[$field] = $file['name']; # store all names into an array 
    ... 
}