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 相关文章推荐
模拟OICQ的实现思路和核心程序(一)
Oct 09 PHP
菜鸟学PHP之Smarty入门
Jan 04 PHP
PHP 分页原理分析,大家可以看看
Dec 21 PHP
整理的一些实用WordPress后台MySQL操作命令
Jan 07 PHP
php过滤XSS攻击的函数
Nov 12 PHP
PHP内核探索:变量概述
Jan 30 PHP
2014年最新推荐的10款 PHP 开发框架
Aug 01 PHP
php中count获取多维数组长度的方法
Nov 03 PHP
PHP产生不重复随机数的5个方法总结
Nov 12 PHP
PHP内存使用情况如何获取
Oct 10 PHP
thinkphp项目如何自定义微信分享描述内容
Feb 20 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 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
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
Php中使用Select 查询语句的实例
2014/02/19 PHP
PHP函数http_build_query使用详解
2014/08/20 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
PHP往XML中添加节点的方法
2015/03/12 PHP
PHP基于工厂模式实现的计算器实例
2015/07/16 PHP
php进行ip地址掩码运算处理的方法
2016/07/11 PHP
基于jquery的图片懒加载js
2010/06/30 Javascript
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
jQuery满意度星级评价插件特效代码分享
2015/08/19 Javascript
JS实现完全语义化的网页选项卡效果代码
2015/09/15 Javascript
JQuery实现左右滚动菜单特效
2015/09/28 Javascript
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
2015/11/26 Javascript
JavaScript高仿支付宝倒计时页面及代码实现
2016/10/21 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
2017/09/05 Javascript
在vue中解决提示警告 for循环报错的方法
2018/09/28 Javascript
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
利用django如何解析用户上传的excel文件
2017/07/24 Python
基于python3抓取pinpoint应用信息入库
2020/01/08 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
Python DES加密实现原理及实例解析
2020/07/17 Python
Python 执行矩阵与线性代数运算
2020/08/01 Python
编写python代码实现简单抽奖器
2020/10/20 Python
斯洛伐克时尚服装网上商店:Cellbes
2016/10/20 全球购物
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
聚网科技C++面试笔试题
2015/09/01 面试题
Java编程面试题
2016/04/04 面试题
终止劳动合同协议书
2014/04/14 职场文书
省委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
我的中国梦主题班会
2015/08/14 职场文书
文明上网主题班会
2015/08/14 职场文书
2019餐饮行业创业计划书!
2019/06/27 职场文书
领导激励员工的演讲稿,各种会上用得到,建议收藏
2019/08/13 职场文书
浅谈Python响应式类库RxPy
2021/06/14 Python
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android