簡體   English   中英

請指導我如何通過PHP將圖像上傳到MySQL數據庫

[英]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腳本在某個文件夾中定位圖像。

我會給您一些可能對您有用的關鍵字:

  • BLOB(用於將圖像數據存儲在db中)
  • move_uploaded_file() (用於將圖像數據存儲在文件系統中)
  • $_FILES (用於訪問PHP中上傳的文件)

您不應該將圖像存儲在數據庫中。 您只應在光盤上存儲對位置的引用。

這也已經在這里進行了解釋: 將圖像存儲在數據庫中-是還是不是?

僅供參考,將圖像存儲在數據庫中是一種不好的做法。

最好將圖像存儲在文件夾中,而不是mysql數據庫中。 參考圖片上傳

只需將圖像上載到文件夾,然后將其相對路徑保存到數據庫。

這會將圖像插入目錄中,並且圖像名稱將存儲在數據庫中,希望對您有所幫助

<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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM