今天教給大家如何用PHP實現把圖象上傳到MYSQL數據庫中。 在這個教程中我們需要建立3個PHP文件:
readdir.php - 把圖片放到數據庫的代碼
image.php - 顯示實際圖片的代碼
view.php - 顯示你如何調用數據庫中的圖片的代碼
1.創建一個數據庫
CREATE TABLE `images` (
`imgid` INT NOT NULL AUTO_INCREMENT ,
`sixfourdata` LONGTEXT NOT NULL ,
PRIMARY KEY ( `imgid` )
);
READDIR.PHP
具體的內容:
<?
$dbcnx = mysql_connect("localhost", "username", "password");
mysql_select_db("base64imgdb");
?>
'我們需要打開一個目錄
"./"
'readdir.php 文件定位於這個目錄:
$path = "./";
$dir_handle = opendir($path) or die("Unable to open directory $path");
下面是比較難的部分,大家需要好好研究一下:把圖象分類,並且讀出正在使用的一些數據
fopen
'轉換
base64_encode
' 插入到表裡
<?
while ($file = readdir($dir_handle)) {
$filetyp = substr($file, -3);
if ($filetyp == 'gif' OR $filetyp == 'jpg') {
$handle = fopen($path . "/" . $file,'r');
$file_content = fread($handle,filesize($path . "/" . $file));
fclose($handle);
$encoded = chunk_split(base64_encode($file_content));
$sql = "INSERT INTO images SET sixfourdata='$encoded'";
mysql_query($sql);
}
}
?>
關閉設置的目錄,然後處理:
<?
closedir($dir_handle);
echo("complete");
mysql_close($dbcnx);
?>
讀出圖片的代碼:IMAGE.PHP
這段代碼比較難,我們要好好看看
<?
$dbcnx = mysql_connect("localhost", "username", "password");
mysql_select_db("base64imgdb");
?>
我們讀出圖片使用的代碼image.php?img=x:
<?
$img = $_REQUEST["img"];
?>
之後我們需要連接數據庫,然後讀出
<?
$result = mysql_query("SELECT * FROM images WHERE imgid=" . $img . "");
if (!$result) {
echo("<b>請求錯誤: " . mysql_error() . "</b>");
exit();
}
while ($row = mysql_fetch_array($result)) {
$imgid = $row["imgid"];