我有兩個PHP頁面adp3.php(表單頁面)和adp4.php(上傳內容數據庫)如何使用php存儲數據庫中的文件路徑?
adp3.php:
<form method="POST" enctype="multipart/form-data">
<label>SUBJECT:</label><select name="subject">
<?php
$query="SELECT * FROM subject WHERE SyllabusID=".$batch1." and SemID=".$sems."";
$result=mysqli_query($con, $query);
//loop
foreach($result as $subject){
?>
<option value="<?php echo $subject['SubjectID']."-".$subject['SubjectName']; ?>"><?php echo $subject['SubjectName']; ?></option>
<?php
}
?>
</select>
<br>
DATE: <select name="date">
<option>MAY/JUNE</option>
<option>NOV/DEC</option>
</select>
<p color="white">YEAR: <input type="varchar" name="year"/></p></br>
<p color="white">PAPER LINK: <input type="file" name="file"/></p></br>
<br>
<button formaction="adp4.php" class="btn-login">GO</button>
adp4:
<?php
$date =$_POST['date'];
$year=$_POST['year'];
$file=$_FILES['file'];
if($date && $year)
{ mysql_connect("localhost","root","") or die("we couldnt connect");
mysql_select_db("dbmsproj");
$result=mysql_query("INSERT INTO paper(SubjectID,Date,Dlink) values('$subid','$date $year','$file')");
?> <p color="white"><?php echo "Paper SUCCESSFULLY ADDED TO THE DATABASE";
}
else
{?>
<p color="white"><?php echo "ALL FIELDS NEED TO BE FILLED ";
}
?>
除了文件路徑之外,一切都正確進入DB(顯示文件路徑字段中的「數組」)..請幫助
更新:(問題已解決)謝謝你們幫助我。我的代碼終於工作了。你們是最好的
你必須manualy使用'move_uploaded_file(把你的文件到您的目錄)'然後插入路徑數據庫字段 –
我不會存放的路徑,只有文件名。路徑可能會發生變化,如果您在某個時間點發生移動,則不會希望更新所有這些記錄。 (或使用符號鏈接,yuck)例如,在我的工作中,我們在數據庫中存儲了90,000個pdf,我們在過去的4年中已經跨3個服務器遷移。 (和一個域名) – ArtisticPhoenix
我推薦的另一件事是使用散列重命名文件。 (如sha1),然後用時間戳和散列'time()。hash()。pdf'將它保存到文件系統中然後將用戶的文件名(原始名稱)保存在數據庫中(這樣就可以僞造它, )。你不會相信廢話PPL放在文件名,所有類型的東西,你的URL和什麼不起來。我甚至有人把''''或'''放在文件名中,這是壞的mojo。爲什麼看到https://stackoverflow.com/questions/28504839/how-to-delete-a-file-with-quote-在文件名 – ArtisticPhoenix