PHP實(shí)現(xiàn)將HTML5中Canvas圖像保存到服務(wù)器的方法
本文實(shí)例講述了PHP實(shí)現(xiàn)將HTML5中Canvas圖像保存到服務(wù)器的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
一、問(wèn)題:
在幾年前HTML5還沒(méi)有流行的時(shí)候,我們的項(xiàng)目經(jīng)理曾經(jīng)向我提出這樣一個(gè)需求:讓項(xiàng)目評(píng)審專(zhuān)家們?cè)谠u(píng)審結(jié)束時(shí)用筆在平板電腦上進(jìn)行電子簽名。這需要我們?cè)u(píng)審軟件里提供這樣一個(gè)功能:打開(kāi)瀏覽器,登錄,進(jìn)入評(píng)審意見(jiàn)頁(yè),頁(yè)面最下部有個(gè)方塊區(qū)域,用戶在這里用觸摸筆進(jìn)行簽名,然后這個(gè)簽名將會(huì)保持的服務(wù)器上。
這樣的一個(gè)需求在當(dāng)時(shí)是讓我大費(fèi)周折,但如今想起來(lái),如果用html5的canvas實(shí)現(xiàn),真是太簡(jiǎn)單了。在《在HTML5 Canvas中放入圖片和保存為圖片的方法》這篇文章里就實(shí)現(xiàn)了這一功能。
二、解決方法:
之前說(shuō)了很多如何將canvas圖像保存成圖片并下載的方法,但這些方法都是將圖片保存到客戶端,而我們的簽名需求是需要將canvas的內(nèi)容保存到服務(wù)器端,如何實(shí)現(xiàn)?
其實(shí)很簡(jiǎn)單,看完下面的這段PHP代碼,相信你也會(huì)覺(jué)得很簡(jiǎn)單。
// requires php5
define('UPLOAD_DIR', 'images/');
$img = $_POST['img'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR . uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';
?>
從網(wǎng)頁(yè)上傳到服務(wù)器端的圖片是base64_encode轉(zhuǎn)碼過(guò)的Data URL格式,數(shù)據(jù)在服務(wù)器端用base64_decode進(jìn)行解碼,保存成文件。
或許有一天你也會(huì)需要用到它的,覺(jué)得很有用的話就收藏一下吧!
希望本文所述對(duì)大家的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
php判斷/計(jì)算閏年的方法小結(jié)【三種方法】
這篇文章主要介紹了php判斷/計(jì)算閏年的方法,結(jié)合實(shí)例形式總結(jié)分析了三種計(jì)閏年的判斷方法,需要的朋友可以參考下2019-07-07PHP實(shí)現(xiàn)的基于單向鏈表解決約瑟夫環(huán)問(wèn)題示例
這篇文章主要介紹了PHP實(shí)現(xiàn)的基于單向鏈表解決約瑟夫環(huán)問(wèn)題,結(jié)合具體實(shí)例形式分析了php使用單鏈表解決約瑟夫環(huán)問(wèn)題的算法原理與相關(guān)操作技巧,需要的朋友可以參考下2017-09-09PHP排序算法之歸并排序(Merging Sort)實(shí)例詳解
這篇文章主要介紹了PHP排序算法之歸并排序(Merging Sort),結(jié)合實(shí)例形式詳細(xì)分析了php歸并排序的原理、定義、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-04-04php ss7.5的數(shù)據(jù)調(diào)用 (筆記)
這里不再多說(shuō) 這里只說(shuō) ss7.5的數(shù)據(jù)調(diào)用 不管是外部的 還是內(nèi)部的2010-03-03php 函數(shù)使用可變數(shù)量的參數(shù)方法
下面小編就為大家?guī)?lái)一篇php 函數(shù)使用可變數(shù)量的參數(shù)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05php5.3/5.4/5.5/5.6/7常見(jiàn)新增特性匯總整理
這篇文章主要介紹了php5.3/5.4/5.5/5.6/7常見(jiàn)新增特性,整理總結(jié)了php5.3/5.4/5.5/5.6/7各種常見(jiàn)的新增特性,包括各種語(yǔ)法、關(guān)鍵字、函數(shù)、擴(kuò)展等,需要的朋友可以參考下2020-02-02PHP實(shí)現(xiàn)的數(shù)獨(dú)求解問(wèn)題示例
這篇文章主要介紹了PHP實(shí)現(xiàn)的數(shù)獨(dú)求解問(wèn)題,涉及php數(shù)組與字符串的遍歷、比較、判斷、運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下2017-04-04