之前需要利用 php 將圖片儲存進 MySQL 資料庫,今天整理了一下,做個筆記,因為 iammic

老是忘東忘西的,怕到時後需要用到又找不到可用的程式碼。在以下的程式中沒有特別去處理圖

片格式的相關程式,都假設上傳的圖片為 jpg 檔案,所以顯示格示直接使用

header("Content-type: image/jpeg"); 

方式處理,如果需要上傳不同圖片檔案格式,可以在上傳時,利用

_FILES['image']['type'];

取得圖片類型,做相關處理。

 

image DB 資料表

CREATE TABLE `imageDB` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`image` LONGBLOB 
) 

 

upload.html

<form enctype="multipart/form-data" method="post" action="upload.php">
 <input type="file" name="image" />
 <input type="submit" value="確定上傳"/>
</form>

 

upload.php 儲存圖片到 MySQL

<?php
 
 //取得上傳檔案資訊
 filename=_FILES['image']['name'];
 tmpname=_FILES['image']['tmp_name'];
 filetype=_FILES['image']['type'];
 filesize=_FILES['image']['size']; 
 file=NULL;
 
 if(isset(_FILES['image']['error'])){ 
 if(_FILES['image']['error']==0){ 
 instr = fopen(tmpname,"rb" );
 file = addslashes(fread(instr,filesize(tmpname))); 
 }
 }
 
 //新增圖片到資料庫
 conn=mysql_pconnect("127.0.0.1","test","1234"); 
 mysql_select_db("test");
 mysql_query("SET NAMES'utf8'");
 
 sql=sprintf("insert into imageDB(image)values(%s)","'".file."'");
 
 mysql_query(sql); 
 mysql_close(conn);
 
?>

 

display.php 顯示圖片

<?php
 
 //從資料庫取得圖片
 conn=mysql_pconnect("127.0.0.1","test","1234"); 
 mysql_select_db("test");
 mysql_query("SET NAMES'utf8'");
 
 sql=sprintf("select * from imageDB where id=1");
 
 result=mysql_query(sql); 
 
 //顯示圖片
 if(row=mysql_fetch_assoc(result)){ 
 header("Content-type: image/jpeg"); 
 print row['image'];
 }
 
 mysql_close(conn);
?>
文章標籤
全站熱搜
創作者介紹
創作者 iammic 的頭像
iammic

簡單過生活

iammic 發表在 痞客邦 留言(0) 人氣(35,839)