第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何使用PHP從MySQL數(shù)據(jù)庫(kù)存儲(chǔ)和檢索圖像?

如何使用PHP從MySQL數(shù)據(jù)庫(kù)存儲(chǔ)和檢索圖像?

海綿寶寶撒 2019-06-26 13:39:31
如何使用PHP從MySQL數(shù)據(jù)庫(kù)存儲(chǔ)和檢索圖像?如何在MySQL中插入圖像,然后使用PHP檢索圖像?我在這兩個(gè)領(lǐng)域的經(jīng)驗(yàn)有限,我可以使用一些代碼來(lái)讓我開(kāi)始弄清楚這一點(diǎn)。
查看完整描述

3 回答

?
藍(lán)山帝景

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊

首先,創(chuàng)建一個(gè)MySQL表來(lái)存儲(chǔ)圖像,例如:

create table testblob (
    image_id        tinyint(3)  not null default '0',
    image_type      varchar(25) not null default '',
    image           blob        not null,
    image_size      varchar(25) not null default '',
    image_ctgy      varchar(25) not null default '',
    image_name      varchar(50) not null default '');

然后,您可以將圖像寫(xiě)入數(shù)據(jù)庫(kù),如下所示:

/***
 * All of the below MySQL_ commands can be easily
 * translated to MySQLi_ with the additions as commented
 ***/ $imgData = file_get_contents($filename);$size = getimagesize($filename);mysql_connect("localhost", "$username", "$password");mysql_select_db ("$dbname");// mysqli // $link = mysqli_connect("localhost", $username, $password,$dbname); $sql = sprintf("INSERT INTO testblob
    (image_type, image, image_size, image_name)
    VALUES
    ('%s', '%s', '%d', '%s')",
    /***
     * For all mysqli_ functions below, the syntax is:
     * mysqli_whartever($link, $functionContents); 
     ***/
    mysql_real_escape_string($size['mime']),
    mysql_real_escape_string($imgData),
    $size[3],
    mysql_real_escape_string($_FILES['userfile']['name'])
    );mysql_query($sql);

您可以在以下網(wǎng)頁(yè)中顯示數(shù)據(jù)庫(kù)中的圖像:

$link = mysql_connect("localhost", "username", "password");mysql_select_db("testblob");$sql = "SELECT image FROM testblob WHERE image_id=0";$result = mysql_query("$sql");header("Content-type: image/jpeg");echo mysql_result($result, 0);mysql_close($link);


查看完整回答
反對(duì) 回復(fù) 2019-06-26
?
LEATH

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊

不要將圖像存儲(chǔ)在數(shù)據(jù)庫(kù)中,而是將它們存儲(chǔ)在磁盤(pán)中的文件夾中,并將其存儲(chǔ)在數(shù)據(jù)庫(kù)中。


查看完整回答
反對(duì) 回復(fù) 2019-06-26
?
aluckdog

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊

請(qǐng)注意,從DB提供的映像通常是非常多的。比從磁盤(pán)為他們服務(wù)要慢。

您將啟動(dòng)一個(gè)PHP進(jìn)程,打開(kāi)一個(gè)DB連接,讓DB像文件系統(tǒng)一樣從同一個(gè)磁盤(pán)和RAM讀取圖像數(shù)據(jù),通過(guò)幾個(gè)套接字和緩沖區(qū)傳輸它,然后通過(guò)PHP進(jìn)行推送,這在默認(rèn)情況下使它不可緩存,并增加了塊HTTP編碼的開(kāi)銷(xiāo)。

OTOH現(xiàn)代Web服務(wù)器只需很少經(jīng)過(guò)優(yōu)化的內(nèi)核調(diào)用(內(nèi)存映射文件和傳遞給TCP堆棧的內(nèi)存區(qū)域)就可以提供映像,這樣它們甚至不會(huì)復(fù)制內(nèi)存,而且?guī)缀鯖](méi)有開(kāi)銷(xiāo)。

這與在一臺(tái)機(jī)器上并行處理20或2000張圖像是有區(qū)別的。

所以別這么做除非您絕對(duì)需要事務(wù)完整性(實(shí)際上,這甚至可以通過(guò)DB中的圖像元數(shù)據(jù)和文件系統(tǒng)清理例程來(lái)完成),并且知道如何改進(jìn)PHP對(duì)HTTP的處理,使之適合于圖像。


查看完整回答
反對(duì) 回復(fù) 2019-06-26
  • 3 回答
  • 0 關(guān)注
  • 548 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)