我一直在爲如何在不超載系統的情況下將多張照片上傳到數據庫中的日子一直在尋找答案,並決定最好的方法是將多張照片上傳到新創建的目錄(通過php創建)並將目錄鏈接存儲在數據庫中。我正在處理的是一個基本上創建一個新的獨特頁面的表單。這個獨特的頁面有一組獨特的照片,因此我需要在每次生成頁面時生成一個文件夾,並將路徑鏈接上載到數據庫!我怎麼做???PHP - 將多張照片上傳到新創建的目錄中
這裏是我的HTML:
<form method="post" action="test.php" enctype="multipart/form-data">
<p>File:</p>
<input type="file" name="file[]" id="file" >
<input type="submit" value="Upload">
</form>
,這裏是我的PHP至今(應該是在正確的軌道,我希望:/):
<?php
//Connect to DB
$conn = mysql_connect ('localhost', 'root', 'root');
if (!$conn){
die("Could Not Connect to MySQL!");
}
if(!mysql_select_db("test")){
die("Could Not Open Database:" . mysql_error());
}
echo "<p>Connected</p>";
//Upload Files
foreach ($_FILES['file']['name'] as $f => $name) {
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $name);
$extension = end($temp);
if ((($_FILES["file"]["type"][$f] == "image/gif")
|| ($_FILES["file"]["type"][$f] == "image/jpeg")
|| ($_FILES["file"]["type"][$f] == "image/jpg")
|| ($_FILES["file"]["type"][$f] == "image/png"))
&& ($_FILES["file"]["size"][$f] < 2000000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"][$f] > 0){
echo "Return Code: " . $_FILES["file"]["error"][$f] . "<br>";
} else {
if (file_exists("uploads/" . $name)){
echo "<p>File Already Exists</p>";
} else {
//create new directory folder within /uploads
//move the files you upload into the new folder.
move_uploaded_file($_FILES["file"]["tmp_name"][$f], "upload/" . uniqid() . "_" . $name);
//send the file path to the database.
mysql_query("INSERT INTO test (idtest,testing) VALUES (','{$filepath}'");
}
}
} else {
$error = "Invalid file";
}
}
?>
,併爲那些好奇,這裏是我的數據庫collumns:
|| idtest (AI, INT) || testing (varchart(50)) ||
任何幫助IMMENSELY讚賞!它一直在幫我!先謝謝你!
這是一個強制性的註釋,提醒您在解決當前問題後放棄用'mysql'函數代替'mysqli'或'PDO'庫。 – castis 2014-08-28 18:19:56
是的!我完全忘了!猜舊的習慣會死硬,呵呵..:P順便說一下,mysqli_query = mysql_query,不過吧? – 2014-08-28 18:40:55
[mysqli庫](http://php.net/manual/en/mysqli.quickstart.php)文檔有關該主題的豐富知識。我不知道是否簡單地改變函數名稱會產生相同的輸出。 – castis 2014-08-28 20:52:59