❶ php中如何調用資料庫中的圖片並且顯示到頁面
php是採用二進制形式存儲圖片及讀取顯示的,首先通過代碼創建數據表,然後上傳圖片伺服器再通過瀏覽器顯示,具體編程代碼舉例:
1、首先需要創建數據表,具體代碼如下圖所示。
❷ php中如何將圖片轉成二進制呢
肯定不是這樣操作的,你的想法……
資料庫伺服器端空間的價格是非常昂貴的,並且資料庫太過龐大,會降低查詢效率
是這樣做的,把圖片在伺服器上面的地址,存放到資料庫中,然後需要用的話,讀出來這個圖片在資料庫中的地址,然後想辦法顯示
要是像你弄的那樣,那電影呢,動不動好幾g,然後很多人在查詢資料庫,你那資料庫早就崩潰了
都是在資料庫中存放地址,不是存放內容,對於二進制文件……
❸ php怎樣將圖片轉換成二進制或者是字元串
header("Content-type:image/jpeg");
$PSize=filesize('1.jpg');
$picturedata=fread(fopen('1.jpg',"r"),$PSize);
echo$picturedata;
或file_get_contents
❹ php如何接收二進制流圖片
<?php
/**
*圖片類
*@authorhttp://blog.csdn.net/haiqiao_2010
*@version1.0
*
*PHP默認只識別application/x-www.form-urlencoded標準的數據類型。
*因此,對型如text/xml或者soap或者application/octet-stream之類的內容無法解析,如果用$_POST數組來接收就會失敗!
*故保留原型,交給$GLOBALS['HTTP_RAW_POST_DATA']來接收。
*另外還有一項php://input也可以實現此這個功能
*php://input允許讀取POST的原始數據。和$HTTP_RAW_POST_DATA比起來,它給內存帶來的壓力較小,並且不需要任何特殊的php.ini設置。php://input和$HTTP_RAW_POST_DATA不能用於enctype="multipart/form-data"。
*/
classimageUpload{
constROOT_PATH='./';
constFAIL_WRITE_DATA='Failtowritedata';
//沒有數據流
constNO_STREAM_DATA='Thepostdataisempty';
//圖片類型不正確
constNOT_CORRECT_TYPE='Notacorrectimagetype';
//不能創建文件
constCAN_NOT_CREATE_FILE='Cannotcreatefile';
//上傳圖片名稱
public$image_name;
//圖片保存名稱
public$save_name;
//圖片保存路徑
public$save_dir;
//目錄+圖片完整路徑
public$save_fullpath;
❺ php將圖片轉為二進制後,我想得到二進制的數據,但是直接在瀏覽上輸出會亂碼
如果 你是想保存成圖片文件的話, 那你就把二進制數據寫到文件里, 記得文件後綴是 gif
For Example:
file_put_contents('1.gif', $a);
❻ php將圖片文件轉換成二進制輸出的方法
本文實例講述了php將圖片文件轉換成二進制輸出的方法。分享給大家供大家參考。具體實現方法如下:
1
2
3
4
header(
Content-type:
image/jpeg);
$PSize
=
filesize('1.jpg');
$picturedata
=
fread(fopen('1.jpg',
r),
$PSize);
echo
$picturedata;
就這么簡單4行代碼,就將圖片以二進制流的形式輸出到客戶端了,和打開一張圖片沒有任何區別。
這里需要注意的是,發送的header要根據具體情況而定,不一定都是image/jpeg。JPG的就是image/jpeg,但PNG的就是image/png.不同類型的圖片輸出不同的頭部。
❼ PHP如何判斷接收的是否為圖片二進制數據
該函數圖像格式將自動檢測,只要 PHP 支持:JPEG,PNG,GIF,WBMP 和 GD2。 返回值:成功則返回圖像資源,如果圖像格式不支持,數據不是認可的格式,或者圖像已損壞則返回 FALSE如果沒有GD庫可以使用下邊的方法: function check_img_by_source($source) { switch(bin2hex(substr($source,0,2))){ case 'ffd8' : return 'ffd9' === bin2hex(substr($source,-2)); case '8950' : return '6082' === bin2hex(substr($source,-2)); case '4749' : return '003b' === bin2hex(substr($source,-2)); default : return false;}}//測試var_mp(check_img_by_source(file_get_contents('11.gif'));大概是這個樣子的吧,只針對了jpg,png,gif做了判斷。。想加其他的按照以上規則增加即可。 不過上邊這個判斷不夠嚴謹,別人可以根據以上判斷規則構造一個假數據。
❽ php中如何從資料庫中讀取圖片
<?php
//將圖片存進資料庫再讀出,注意存儲圖片的欄位類型必須為blob
$user=』root』;
$password=』root』;
$db=』test』;
$connect=mysql_connect(『localhost』,$user,$password);
mysql_set_charset(『utf8′,$connect);
mysql_select_db($db);
$photo = 「0x」.bin2hex(file_get_contents(「./test.jpg」));
$sql=」INSERT INTO `test`.`test` (`photo`) VALUES ($photo);」;//$photo不需要用引號,切記
mysql_query($sql);
//$result=mysql_query(「SELECT *
//FROM `test`
//LIMIT 0 , 30〃);
//$img=mysql_fetch_array($result);
//echo $img['photo'];
?>
❾ php讀取mysql資料庫中的二進制圖片亂碼,求指教!!
Header( "Content-type: application/octet-stream ");
基本上原因都出在這里,根據不同的php版本,有很多不同的寫法,研究一下
❿ php圖片以二進制的方式存儲在資料庫的問題
mysql自己有select語句,用這個來操作
比如說你每個圖片主碼設一個auto_increasment的id(自動以1,2,3這樣排序下去的方式存圖片),然後比如說一共有50張圖片,依次讀出for(i=0,i<50,i++){select
圖片
from
資料庫
where(圖片id=
i);}就這樣可以依次根據圖片的id讀下去。