這篇文章將為大家詳細(xì)講解有關(guān)怎么在php項(xiàng)目中對圖片進(jìn)行二進(jìn)制轉(zhuǎn)換,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
專注于為中小企業(yè)提供網(wǎng)站制作、成都網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)甘孜州免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。具體實(shí)現(xiàn)方法如下:
html代碼如下:
將圖片保存到數(shù)據(jù)庫,代碼如下:
query("INSERT INTO img (images) VALUES (‘$buf')"); //獲取影響的行數(shù) if ($result->rowCount() >0) { echo("數(shù)據(jù)已插入。"); } else { echo("不能執(zhí)行插入操作。"); } //顯式的關(guān)閉PDO連接 $dbh = NULL; ?>
顯示圖片show.php,代碼如下:
或者,代碼如下:
補(bǔ)充:
1、fopen函數(shù).
fopen()函數(shù)用于打開文件或者URL,語法如下:
int fopen(string filename, string mode);
字符串參數(shù)mode可以是下列的情形:
"r"開文件方式為只讀,文件指針指到開始處.
"r+"開文件方式為可讀寫,文件指針指到開始處。
"w"開文件方式為寫入,文件指針指到開始處,并將原文件的長度設(shè)為0。若文件不存在,則建立新文件。
"w+"開文件方式為可讀寫,文件指針指到開始處,并將原文件的長度設(shè)為0。若文件不存在,則建立新文件。
"a"開文件方式為寫入,文件指針指到文件最后。若文件不存在,則建立新文件。
"a+"開文件方式為可讀寫,文件指針指到文件最后。若文件不存在,則建立新文件。
"b"若操作系統(tǒng)的文字及二進(jìn)位文件不同,則可以用此參數(shù),UNIX系統(tǒng)不需要使用本參數(shù)。
2、Addslashes函數(shù)
Addslashes函數(shù)用于將字符串加入斜線,語法如下,注:我測試的時候是把這個函數(shù)去掉后成功了,道理你懂的,自己試下就明白了.
string addslashes(string str);
該函數(shù)使需要讓數(shù)據(jù)庫處理的字符串,引號的部份加上斜線,以供數(shù)據(jù)庫查詢(query)能順利運(yùn)作,這些會被改的字符包括單引號(')、雙引號(")、反斜線backslash()以及空字符NULL(the null byte).
3、fread函數(shù)
fread函數(shù)用于讀到指定長度的位組或到文件尾EOF,語法如下:
string fread(int fp, int length);可安全用于二進(jìn)制文件
fread() 從文件指針 file 讀取最多 length 個字節(jié),該函數(shù)在讀取完最多 length 個字節(jié)數(shù),或到達(dá) EOF 的時候,或(對于網(wǎng)絡(luò)流)當(dāng)一個包可用時,或(在打開用戶空間流之后)已讀取了 8192 個字節(jié)時就會停止讀取文件,視乎先碰到哪種情況.
二進(jìn)制轉(zhuǎn)換成圖片
注:$newFilePath 對生成的圖片名和路徑做處理,這里自己去實(shí)現(xiàn),代碼如下:
$newFilePath='1.jpg';
$data = $GLOBALS[HTTP_RAW_POST_DATA];//得到post過來的二進(jìn)制原始數(shù)據(jù)
if(emptyempty($data)){
$data=file_get_contents("php://input");
}
$newFile = fopen($newFilePath,"w");//打開文件準(zhǔn)備寫入
fwrite($newFile,$data);//寫入二進(jìn)制流到文件
fclose($newFile);//關(guān)閉文件
可以把讀取到的二進(jìn)制流存到數(shù)據(jù)庫,也可以直接寫入成一個圖片,獲取二進(jìn)制頭文件,從而得知屬于什么類型文件,代碼如下:
$bin = substr($content,0,2);
$strInfo = @unpack("C2chars", $bin);
$typeCode = intval($strInfo['chars1'].$strInfo['chars2']);
$fileType = '';
switch ($typeCode)
{
case 7790:
$fileType = 'exe';
break;
case 7784:
$fileType = 'midi';
break;
case 8297:
$fileType = 'rar';
break;
case 255216:
$fileType = 'jpg';
break;
case 7173:
$fileType = 'gif';
break;
case 6677:
$fileType = 'bmp';
break;
case 13780:
$fileType = 'png';
break;
default:
echo 'unknown';
}
關(guān)于怎么在php項(xiàng)目中對圖片進(jìn)行二進(jìn)制轉(zhuǎn)換就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。