日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

PHP中的HTML5應(yīng)用 將Canvas圖像保存到服務(wù)器

 sea2x 2016-12-27

        在幾年前HTML5還沒有流行的時(shí)候,我們的項(xiàng)目經(jīng)理曾經(jīng)向我提出這樣一個(gè)需求:讓項(xiàng)目評(píng)審專家們?cè)谠u(píng)審結(jié)束時(shí)用筆在平板電腦上進(jìn)行電子簽名。這需要我們?cè)u(píng)審軟件里提供這樣一個(gè)功能:打開瀏覽器,登錄,進(jìn)入評(píng)審意見頁(yè),頁(yè)面最下部有個(gè)方塊區(qū)域,用戶在這里用觸摸筆進(jìn)行簽名,然后這個(gè)簽名將會(huì)保持的服務(wù)器上。

        這樣的一個(gè)需求在當(dāng)時(shí)是讓我大費(fèi)周折,但如今想起來(lái),如果用html5的canvas實(shí)現(xiàn),真是太簡(jiǎn)單了。在《將畫布(canvas)圖像保存成本地圖片的方法》這篇文章里就有一個(gè)只用了幾行代碼就實(shí)現(xiàn)了的畫板功能——很簡(jiǎn)單,雖然有一個(gè)小bug——但完全能當(dāng)作簽名用。

        我之前說了很多如何將canvas圖像保存成圖片并下載的方法,但這些方法都是將圖片保存到客戶端,而我們的簽名需求是需要將canvas的內(nèi)容保存到服務(wù)器端,如何實(shí)現(xiàn)?

        其實(shí)很簡(jiǎn)單,看完下面的這段PHP代碼,相信你也會(huì)覺得很簡(jiǎn)單。

<?php
	// 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)碼過的Data URL格式,數(shù)據(jù)在服務(wù)器端用base64_decode進(jìn)行解碼,保存成文件。我在上篇文章中提到的那個(gè)火狐瀏覽器的微博圖文分享工具,在服務(wù)器端就是用到了這段代碼。

        有一天你也會(huì)需要用到它的,很有用的代碼,收藏一下吧!


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多