PHP实现将HTML5中Canvas图像保存到服务器的方法


Posted in PHP onNovember 28, 2014

本文实例讲述了PHP实现将HTML5中Canvas图像保存到服务器的方法。分享给大家供大家参考。具体实现方法如下:

一、问题:

在几年前HTML5还没有流行的时候,我们的项目经理曾经向我提出这样一个需求:让项目评审专家们在评审结束时用笔在平板电脑上进行电子签名。这需要我们评审软件里提供这样一个功能:打开浏览器,登录,进入评审意见页,页面最下部有个方块区域,用户在这里用触摸笔进行签名,然后这个签名将会保持的服务器上。

这样的一个需求在当时是让我大费周折,但如今想起来,如果用html5的canvas实现,真是太简单了。在《在HTML5 Canvas中放入图片和保存为图片的方法》这篇文章里就实现了这一功能。

二、解决方法:

之前说了很多如何将canvas图像保存成图片并下载的方法,但这些方法都是将图片保存到客户端,而我们的签名需求是需要将canvas的内容保存到服务器端,如何实现?

其实很简单,看完下面的这段PHP代码,相信你也会觉得很简单。

<?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.';

?>

从网页上传到服务器端的图片是base64_encode转码过的Data URL格式,数据在服务器端用base64_decode进行解码,保存成文件。

或许有一天你也会需要用到它的,觉得很有用的话就收藏一下吧!

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
php中定时计划任务的实现原理
Jan 08 PHP
ajax完美实现两个网页 分页功能的实例代码
Apr 16 PHP
一个好用的PHP验证码类实例分享
Dec 27 PHP
php共享内存段示例分享
Jan 20 PHP
php生成缩略图示例代码分享(使用gd库实现)
Jan 20 PHP
php使用curl存储cookie的示例
Mar 31 PHP
修改destoon会员公司的伪静态中的com目录的方法
Aug 21 PHP
ThinkPHP 表单自动验证运用示例
Oct 13 PHP
php实现mysql连接池效果实现代码
Jan 25 PHP
php-fpm添加service服务的例子
Apr 27 PHP
实例分析10个PHP常见安全问题
Jul 09 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
Nov 28 #PHP
php的mssql数据库连接类实例
Nov 28 #PHP
smarty中post用法实例
Nov 28 #PHP
smarty简单入门实例
Nov 28 #PHP
php最简单的删除目录与文件实现方法
Nov 28 #PHP
php查找指定目录下指定大小文件的方法
Nov 28 #PHP
thinkphp四种url访问方式详解
Nov 28 #PHP
You might like
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
通过PHP的内置函数,通过DES算法对数据加密和解密
2012/06/21 PHP
PHP实现链式操作的核心思想
2015/06/23 PHP
超级简单的图片防盗(HTML),好用
2007/04/08 Javascript
javascript优先加载笔记代码
2008/09/30 Javascript
javascript Ext JS 状态默认存储时间
2009/02/15 Javascript
jquery对元素拖动排序示例
2014/01/16 Javascript
jquery xMarquee实现文字水平无缝滚动效果
2014/04/29 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
学习javascript面向对象 理解javascript对象
2016/01/04 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
教你5分钟学会用requirejs(必看篇)
2017/07/25 Javascript
React Native之prop-types进行属性确认详解
2017/12/19 Javascript
vue-cli项目优化方法- 缩短首屏加载时间
2018/04/01 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
对python中的乘法dot和对应分量相乘multiply详解
2018/11/14 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
利用Python检测URL状态
2019/07/31 Python
Python进阶之使用selenium爬取淘宝商品信息功能示例
2019/09/16 Python
巧用 CSS3的webkit-box-reflect 倒影实现各类动效
2021/03/05 HTML / CSS
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
Born鞋子官网:Born Shoes
2017/04/06 全球购物
捷克玩具商店:Bambule
2019/02/23 全球购物
大学生个人简历中的自我评价
2013/12/27 职场文书
旅游活动总结
2014/08/27 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
2014县政府领导班子对照检查材料思想汇报
2014/09/25 职场文书
四风问题党员个人整改措施
2014/10/27 职场文书
导游词格式
2015/02/13 职场文书
Python Pygame实战在打砖块游戏的实现
2022/03/17 Python
Java版 单机五子棋
2022/05/04 Java/Android