2013-10-20 155 views
0

我想將圖像存儲在mysql數據庫中。圖像通過android應用程序發送。問題是我真的不知道用哪種方法在msql數據庫中存儲圖像。圖像存儲在mysql數據庫中

1. Access image from file 
2.Store image in filesystem and store the url in the database 
3.Store the image in the database 

存儲這些images.I後,我想要將這些圖像到PHP文件。

我想知道哪種方法最好,以及如何做到這一點?

+0

如果我的回答真的對你有幫助,你可以隨時爲已接受的答案做點贊。 – johntheripp3r

回答

0

在移動平臺上,數據庫調用非常昂貴。意味着從數據庫中獲取需要更多的週期,並且可能會降低應用程序的性能。顯然你不想那樣。如果你想這樣做,BLOB是你的答案。
的有效途徑
添加絕對路徑場在你的數據庫,並從本地存儲獲取圖像。
這是最佳做法。

+0

真的很愉快,人們來這裏特別** DOWNVOTE **我的回答後查看我的個人資料。我沒有期待這麼多的關注。 – johntheripp3r

1

是的,您可以將圖像存儲在數據庫中,但這不是可取的和不好的做法。

不要將圖像存儲在數據庫中。 將圖像存儲在目錄中並存儲對數據庫中圖像的引用。就像存儲數據庫中圖像的路徑或數據庫中的圖像名稱一樣。

圖片可以得到相當大的1MB>。即使這是一個小圖片,這仍然是一個不好的做法。您正在爲您完全避免的數據庫事務添加額外的命中。沒有大網站在他們的數據庫中存儲圖像。例如:Facebook不會這樣做。這不是一個好主意。

避免它。使用目錄。

0

首先創建一個照片表來存儲圖像

CREATE TABLE IF NOT EXISTS `photos` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `img` varchar(255) NOT NULL, 
    `sound` varchar(255) NOT NULL, 
    `about` text NOT NULL, 
    `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    `user_id` varchar(255) NOT NULL, 
    `likes` int(255) NOT NULL, 
    `down` int(255) NOT NULL, 
    `seen` int(11) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ; 

的參考,然後在上傳過程中保存圖像文件夾獲取圖像的文件名,並將其存儲到表像下面經過。

$save_image = mysql_query("INSERT INTO photos VALUES('','$originalFile','','$about','$data','$uid','0','0','0')") or die(mysql_error()); 

,然後簡單地顯示圖像

$p = mysql_query("select img from photos"); 
$p_f = mysql_fetch_assoc($p); 

$img = $p_f['img']; 

,並顯示圖像只需

<img src="myFolder/<?php echo $img?>"> 

和你做。

相關問題