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 处理TXT文件(打开/关闭/检查/读取)
May 13 PHP
php set_time_limit()函数的使用详解
Jun 05 PHP
php中mkdir函数用法实例分析
Nov 15 PHP
phpstorm编辑器乱码问题解决
Dec 01 PHP
PHP编程中的__clone()方法使用详解
Nov 27 PHP
php微信公众平台配置接口开发程序
Sep 22 PHP
解决laravel 5.1报错:No supported encrypter found的办法
Jun 07 PHP
利用php + Laravel如何实现部署自动化详解
Oct 11 PHP
php-msf源码详解
Dec 25 PHP
php+redis消息队列实现抢购功能
Feb 08 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
Apr 12 PHP
php+lottery.js实现九宫格抽奖功能
Jul 21 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实现统计邮件大小的方法
2013/08/06 PHP
PHP实现的交通银行网银在线支付接口ECSHOP插件和使用例子
2014/05/10 PHP
PHP中number_format()函数的用法讲解
2019/04/08 PHP
jQuery EasyUI API 中文文档 - Draggable 可拖拽
2011/09/29 Javascript
如何实现textarea里的不同文本显示不同颜色
2014/01/20 Javascript
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
javascript实现tab切换的两个实例
2015/11/05 Javascript
JavaScript 不支持 indexof 该如何解决
2016/03/30 Javascript
jquery动态遍历Json对象的属性和值的方法
2016/07/27 Javascript
NodeJS远程代码执行
2016/08/28 NodeJs
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
js获取一组日期中最近连续的天数
2017/05/25 Javascript
angularjs中判断ng-repeat是否迭代完的实例
2018/09/12 Javascript
Vue前后端不同端口的实现方法
2018/09/19 Javascript
Javascript通过控制类名更改样式
2019/05/24 Javascript
python生成1行四列全2矩阵的方法
2018/08/04 Python
python制作填词游戏步骤详解
2019/05/05 Python
django 类视图的使用方法详解
2019/07/24 Python
浅谈python中频繁的print到底能浪费多长时间
2020/02/21 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
python实现图片横向和纵向拼接
2020/03/05 Python
Python 字典中的所有方法及用法
2020/06/10 Python
python3.9.1环境安装的方法(图文)
2021/02/02 Python
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
岳父生日宴会答谢词
2014/01/13 职场文书
大学优秀班主任事迹材料
2014/05/02 职场文书
远程培训的心得体会
2014/09/01 职场文书
党的群众路线教育实践活动总结
2014/10/30 职场文书
研究生简历自我评
2015/03/11 职场文书
2015年企业团支部工作总结
2015/05/21 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
小学体育课教学反思
2016/02/16 职场文书
党员公开承诺书2016
2016/03/24 职场文书
Python pygame实现中国象棋单机版源码
2021/06/20 Python