之前需要利用 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 發表在 痞客邦 PIXNET 留言(0) 人氣()