比較普遍的方法是通過代碼實現。
1、源代碼:
// 把圖片上傳到數據庫?
// 從數據庫中讀取圖片;
// 定義文件臨時目錄 是必要的
define('UPLOAD_PATH',dirname(__FILE__)."/uploads/");
if($_POST["submit"]){
if($_FILES['photo']['size']>0 && $_FILES['photo']['name'])
{
$photo_type=$_FILES['photo']['type'];
if(!($_FILES['photo']['type']=='image/gif' || $_FILES['photo']['type']=='image/pjpeg'))
{
echo ?"商品圖片只能為GIF或者JPGE格式。";
}else{
list($tmp,$file_ext) = explode("/",$_FILES['photo']['type']);
$photo_name = mt_rand()."_".time().".".$file_ext;
if(!move_uploaded_file($_FILES['photo']['tmp_name'], UPLOAD_PATH.$photo_name))
{
echo "商品圖片保存失敗。";
echo "<a href=javascript:window.history.go(-1)>返回</a>";
exit(); // 下面的操作將不會進行;
}
}
}
$sql="INSERT INTO `photo`(id,data,type)VALUES('','$photo_name','$photo_type')";
$query=mysql_query($sql);
if($query){
echo "圖片插入成功";
}else{
echo "失敗的操作";
echo "<a href=javascript:window.history.go(-1)>返回</a>";
exit();
}
$sql_show_pic="SELECT * FROM `photo` ";
$query_show_pic=mysql_query($sql_show_pic);
while($result_pic_show=mysql_fetch_array($query_show_pic)){
//header("Content-Type:" .$result_pic_show["type"]);//這個不用啦
//?uploads 必須寫的
echo "<img src=uploads/".$result_pic_show['data']."><br>";
}
}
><form action="" method="post" enctype="multipart/form-data">
<p>選擇上傳的圖片:</p>
<input type="file" name="photo" size="50" ><br/><br>
<input type="submit" name="submit" value="上傳"/>
</form>
2、需要使用的數據類型:
(1)壹般來講都是把圖片保存到服務器下,然後根據路徑讀出的,但是有時候出於安全及版權什麽的考慮,會把圖片保存到mysql的數據庫中,然後再讀出來,這樣的圖片點擊右鍵屬性,是看不到圖片地址的。下面逍遙壹生就介紹下如何用php把圖片存儲到mysql中及如何讀出。
(2)MySQL數據庫使用專門的字段來保存大容量的數據,數據類型為BLOB。
MySQL數據庫為BLOB做出的定義如下:BLOB數據類型是壹種大型的二進制對象,可以保存可變數量的數據。BLOB具有四種類型,分別是TINYBLOB,BLOB, MEDIUMBLOB 與LONGBLOB,區別在於各自所能夠保存的最大數據長度區別。
3、編寫上傳腳本?
接收上傳文件並將其存入到MySQL數據庫中。具體的腳本代碼如下,其中我們假定文件上傳域的名稱為Picture。