[英]Pleae guide me how to upload image to mySql Database through PHP
您能指導我如何通過PHP在MySql數據庫中上傳圖像嗎? 我只有幾天PHP經驗。 我可以采用任何方法,這意味着將文件保存在目錄中,並將其路徑保存在數據庫中,或者將整個圖像保存在數據庫中。
如果您能提供一些代碼或鏈接以供參考,我將非常感謝。 我已經關注了一些鏈接,但這些鏈接存在問題。
我建議您在MySQL中避免這種情況,因為此數據庫引擎缺少良好的SQL二進制附加聚合函數。
這意味着,如果要將大圖像保存到MySQL,則需要一次上傳它們,這非常糟糕,因為如果圖像大小為-fe- 8MB,則將占用8MB RAM。您的服務器以及PHP請求可能會超時,因為上載然后保存到數據庫可能需要幾秒鍾的時間。
如果您的圖像大小為1-2MB,請執行此操作,這可能是一個不好的方法。 二進制文件應分塊上傳,以占用盡可能少的內存,因為網頁應在共享主機上工作,但是我不知道這是您的情況還是您屬於專用的主機,但是無論如何,再次,您將浪費資源而沒有大塊上傳-這在大型文件的MySQL中很難實現。
最終,最好存儲對文件的引用,或者使用約定使圖像標識符(數據庫中的ID列)使PHP腳本在某個文件夾中定位圖像。
我會給您一些可能對您有用的關鍵字:
move_uploaded_file()
(用於將圖像數據存儲在文件系統中) $_FILES
(用於訪問PHP中上傳的文件) 您不應該將圖像存儲在數據庫中。 您只應在光盤上存儲對位置的引用。
這也已經在這里進行了解釋: 將圖像存儲在數據庫中-是還是不是?
這會將圖像插入目錄中,並且圖像名稱將存儲在數據庫中,希望對您有所幫助
<form name="aaa" method="post" enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit" name="submit">
</form>
<?php
if(isset($_POST['submit'])) {
//添加自己的圖片名稱$ name = $ _FILES ['image'] ['name']; $ extension = strrchr($ name,'。'); $ image_name =“ whatever_you_put”。$擴展名;
move_uploaded_file($_POST['image']['tmp_name'],"/image/".$image_name) //where image is a directory where image will be uploaded
mysql_query("insert into table_name VALUES ('".$image_name."')");
}
您應該使用file_get_contents()函數並將結果插入到表的BLOB字段中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.