亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

php將圖片保存入mysql數據庫失敗的解決方法

2024-05-04 23:29:30
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了php將圖片保存入mysql數據庫失敗的解決方法,詳細分析了php將圖片保存入數據庫遇到的問題及對應的解決方法,并總結了相關的技巧,具有一定的參考借鑒價值,需要的朋友可以參考下
 
 

本文實例分析了php將圖片保存入mysql數據庫失敗的解決方法。分享給大家供大家參考。具體分析如下:

圖片保存數據庫并不是一個明智的做法,我們多半是把圖片保存到服務器,然后把圖片地址保存到數據庫,這樣我們每次只要讀出圖片地址就可以顯示了,但下面我還是來介紹一個圖片保存到mysql數據庫的問題解決辦法,代碼如下:

復制代碼代碼如下:
require 'class/db.php'; 
$fileName = "a1.jpg"; 
$fp = fopen($fileName, "r"); 
$img = fread($fp, filesize($fileName)); 
fclose($fp); 
 
$db->execute("insert db2.testimg (`img`) values ('$img') ;");

報錯:

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`?綬q?仳!????1丶>,Mo?'^WZ4in??T春??????U?楹/?' at line 1

代碼如下:

復制代碼代碼如下:
$img = fread($fp, filesize($fileName));
$img = addslashes($img)

 

繼續報錯,各種搜索,百度里的結果都是addslashes,要不就是addslashes也沒有的,真是扯淡啊.

復制代碼代碼如下:
base64_decode
$img = base64_encode($img);

 

插入成功,圖片文件17.0k,出來進行base64_decode,顯示正常,找到個16進制的辦法:

復制代碼代碼如下:
$img = bin2hex($img);

 

有效,輸出不用解密,存入數據庫很大 25K,比base64還坑爹呢,再找,后來,后來,發現phpmyadmin直接上傳的圖片文件可以用文件比base64的小,文件12.8k.

翻phpmyadmin 源代碼,common.lib.php文件183有個神奇的函數,代碼如下:

復制代碼代碼如下:
function PMA_sqlAddslashes($a_string = '', $is_like = false, $crlf = false, $php_code = false) 

    if ($is_like) { 
        $a_string = str_replace('/', '////', $a_string); 
    } else { 
        $a_string = str_replace('/', '//', $a_string); 
    } 
 
    if ($crlf) { 
        $a_string = str_replace("n", 'n', $a_string); 
        $a_string = str_replace("r", 'r', $a_string); 
        $a_string = str_replace("t", 't', $a_string); 
    }
 
    if ($php_code) { 
        $a_string = str_replace(''', '/'', $a_string); 
    } else { 
        $a_string = str_replace(''', '''', $a_string); 
    } 
 
    return $a_string; 
} // end of the 'PMA_sqlAddslashes()' function$img = PMA_sqlAddslashes($img);

文件大小12.8K 和phpmyadmin的一樣大.

 

例,前臺image.html,代碼如下:

復制代碼代碼如下:
<html> 
<head> 
  <title>上傳圖片</title> 
</head> 
 
<body> 
<form method="post" action="upimage.php" enctype="multipart/form-data"> 
 <input type="hidden" value="204800" name="MAX_FILE_SIZE"/> 
 File: <input type="file" name="imgfile" /> 
 <input type="submit" value="OK" name="submitbtn" style="width:100px;height:23px"/></center> 
</form> 
</body> 
</html>

后臺處理upimage.php代碼如下:
復制代碼代碼如下:
<?php 
 //向數據庫中插入圖片 
 $imgfile=$_FILES['imgfile']; 
 $submitbtn=$_POST['submitbtn']; 
 if($submitbtn=='OK' and is_array($imgfile)){ 
 $name=$imgfile['name'];  //取得圖片名稱 
 $type=$imgfile['type']; //取得圖片類型 
 $size=$imgfile['size'];  //取得圖片長度 
 $tmpfile=$imgfile['tmp_name'];  //圖片上傳上來到臨時文件的路徑 
 if($tmpfile and is_uploaded_file($tmpfile)){  //判斷上傳文件是否為空,文件是不是上傳的文件 
  //讀取圖片流 
  $file=fopen($tmpfile,"rb"); 
  $imgdata=bin2hex(fread($file,$size));  //bin2hex()將二進制數據轉換成十六進制表示 
  fclose($file); 
 
  $mysqli=mysql_connect("localhost","root","123456″);  //連接數據庫函數 
  mysql_select_db("test");  //選擇數據庫 
  //插入出數據庫語句,圖片數據前要加上0x,用于表示16進制數 
  if(mysql_query("insert into images(name,type,image) values('".$name."','".$type."',0x".$imgdata.")")) 
   echo "<center>插入成功!<br><br><a href='disimage.php'>顯示圖片</a></center>"; 
  else 
   echo "<center>插入失敗!</center>"; 
  mysql_close(); 
 }else 
 echo "<center>請先選擇圖片!<br><br><a href='image.html'>點此返回</a></center>"; 
} else 
 echo "<center>請先選擇圖片!<br><br><a href='image.html'>點此返回</a></center>"; 
?>

顯示圖片disimage.php,代碼如下:
復制代碼代碼如下:
<?php 
 mysql_connect("localhost","root","123456″); 
 mysql_select_db("test"); 
 //顯示最新插入的那張圖片 
 $result=mysql_query("select image from images where id=(select max(id) from images)"); 
 $row=mysql_fetch_object($result); 
 header("Content-Type:image/pjpeg"); 
 echo $row->image; 
 mysql_close(); 
?>

結論:

 

PMA_sqlAddslashes好用 文件12.8k 和原來圖片一樣大

bin2hex 16進制 好用文件25K

base64_encode 好用,出來的文件需要base64_decode 17K

addslashes 不好用,繼續報錯,注明,在某些windows機器上addslashes好用.

希望本文所述對大家的php程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色樱桃影院亚洲精品影院| 一夜七次郎国产精品亚洲| 狠狠干狠狠久久| 亚洲区一区二区| 成人福利视频网| 国产精品视频一区国模私拍| 亚洲精品中文字幕有码专区| 国产精品一区二区久久精品| 欧美国产日韩免费| 亚洲aⅴ男人的天堂在线观看| 91影院在线免费观看视频| 精品国产依人香蕉在线精品| 91精品国产高清自在线看超| 91久久精品国产91久久性色| 精品久久久久久久大神国产| 亚洲尤物视频网| 久久影视三级福利片| 亚洲欧美日韩国产成人| 久久影院中文字幕| 久久精品视频99| 91精品91久久久久久| 日韩中文字幕在线精品| 欧美日韩中文字幕在线视频| 欧美激情在线观看视频| 国产欧美日韩精品在线观看| 北条麻妃久久精品| 欧美一级黑人aaaaaaa做受| 日本亚洲欧洲色| 亚洲精品久久久久久久久久久久| 自拍偷拍亚洲一区| 国产在线观看一区二区三区| 日韩av电影在线播放| 国产精品美腿一区在线看| 国产日韩一区在线| 亚洲人成在线观看网站高清| 懂色av中文一区二区三区天美| 欧美丝袜美女中出在线| 国产亚洲欧美日韩精品| 92福利视频午夜1000合集在线观看| 青草青草久热精品视频在线观看| 欧美黑人xxxx| 亚洲欧美日韩第一区| 日韩中文字幕在线视频| 日韩免费在线视频| 亚洲少妇激情视频| 欧美成人精品激情在线观看| 久久国产精彩视频| 成人激情视频免费在线| 久久人人爽人人爽爽久久| 欧美刺激性大交免费视频| 欧美人与性动交a欧美精品| 91色中文字幕| 欧美日韩国产精品一区| 国产91在线高潮白浆在线观看| 国产精品嫩草视频| 91久久国产精品91久久性色| 一区二区欧美久久| 97精品伊人久久久大香线蕉| 亚洲一区亚洲二区亚洲三区| 8x拔播拔播x8国产精品| 最近2019中文字幕在线高清| 亚洲的天堂在线中文字幕| 91久久精品国产91性色| 国产精品入口日韩视频大尺度| 亚洲成人网久久久| 亚洲欧洲日产国码av系列天堂| 最新中文字幕亚洲| 美日韩精品免费视频| 欧美日韩国产成人在线观看| 亚洲缚视频在线观看| 国产精品www| 国产在线日韩在线| 红桃视频成人在线观看| 亚洲伊人一本大道中文字幕| 国产精品久久久久久久久久久久久久| 国产精品亚洲片夜色在线| 久久国产精品首页| 一本色道久久88综合日韩精品| 亚洲一区精品电影| 亚洲娇小xxxx欧美娇小| 操91在线视频| 亚洲国产日韩欧美在线图片| 国产91精品久久久久| 精品调教chinesegay| 国模极品一区二区三区| 成人有码视频在线播放| 国产精品久久久久国产a级| 欧美色另类天堂2015| 国产午夜精品视频免费不卡69堂| 日本精品va在线观看| 91国内精品久久| 国产精品视频一区二区三区四| 欧美一级视频一区二区| 91精品国产沙发| 91沈先生在线观看| 日韩在线视频线视频免费网站| 国产丝袜视频一区| 欧美日韩国产精品一区| 欧美在线视频网站| 国产精国产精品| 亚洲综合在线小说| 亚洲欧美中文日韩在线v日本| 亚洲风情亚aⅴ在线发布| 91精品中国老女人| 777国产偷窥盗摄精品视频| 欧美性猛交xxxx黑人猛交| 亚洲精品美女久久| 久久久亚洲网站| 欧美福利在线观看| 欧美在线观看网址综合| 欧美高清videos高潮hd| 777午夜精品福利在线观看| 国产亚洲欧洲高清一区| 不卡av电影院| 羞羞色国产精品| 国产69精品99久久久久久宅男| 97国产suv精品一区二区62| 亚洲日本中文字幕免费在线不卡| 日韩精品视频在线观看网址| 国产精品av免费在线观看| 亚洲乱码国产乱码精品精| 国产精品成人久久久久| 国产综合视频在线观看| 欧美一级片免费在线| 亚洲欧美色婷婷| 国产91在线播放| 亚洲色图美腿丝袜| 欧美噜噜久久久xxx| 久久精品久久久久久国产 免费| 日韩黄色av网站| 欧美成人在线影院| 国产亚洲人成网站在线观看| 日本欧美精品在线| 欧美精品久久久久| 欧美激情一区二区三区高清视频| 欧美老妇交乱视频| 欧美综合在线第二页| 国产亚洲激情视频在线| 日韩av综合中文字幕| 国产亚洲成av人片在线观看桃| 性亚洲最疯狂xxxx高清| 亚洲精品动漫久久久久| 国产精品久久久久久av福利软件| xx视频.9999.com| 欧美老妇交乱视频| 在线精品国产欧美| 欧美激情一区二区三区高清视频| 国产精品三级网站| 欧美日韩国产在线播放| 中文字幕国产精品久久| 欧美一级在线亚洲天堂| 91九色综合久久| 自拍偷拍免费精品| 欧美视频在线观看 亚洲欧| 国产亚洲激情在线| 九九精品在线播放| xxxxx91麻豆| 欧美性生交大片免费| 中文字幕在线日韩| 亚洲福利在线播放| 亚洲第一精品久久忘忧草社区| 欧美日韩国产一中文字不卡| 亚洲一区二区在线| 日韩精品免费电影|