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的栏目导航程序
Oct 09 PHP
基于数据库的在线人数,日访问量等统计
Oct 09 PHP
?繁体转换的class
Oct 09 PHP
APMServ使用说明
Oct 23 PHP
PHP实时显示输出
Oct 02 PHP
PHP MemCached高级缓存配置图文教程
Aug 05 PHP
浅析PKI加密解密 OpenSSL
Jul 01 PHP
使用新浪微博API的OAuth认证发布微博实例
Mar 27 PHP
PHP实现批量上传单个文件
Dec 29 PHP
PHP用户验证和标签推荐的简单使用
Oct 31 PHP
通过PHP设置BugFree获取邮箱通知
Apr 25 PHP
关于laravel模板中生成URL的几种模式总结
Oct 18 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
全国FM电台频率大全 - 12 安徽省
2020/03/11 无线电
用ODBC的分页显示
2006/10/09 PHP
PHP foreach循环使用详解与实例代码
2010/05/08 PHP
php小偷相关截取函数备忘
2010/11/28 PHP
一个典型的PHP分页实例代码分享
2011/07/28 PHP
ThinkPHP写第一个模块应用
2012/02/20 PHP
jquery文字上下滚动的实现方法
2013/03/22 Javascript
用js调用迅雷下载代码的二种方法
2013/04/15 Javascript
jquery eval解析JSON中的注意点介绍
2013/08/23 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
2013/12/23 Javascript
JavaScript中的apply和call函数详解
2014/07/20 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
什么是JavaScript中的结果值?
2016/10/08 Javascript
JS多物体实现缓冲运动效果示例
2016/12/20 Javascript
js实现背景图自适应窗口大小
2017/01/10 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
js实现鼠标跟随运动效果
2020/08/02 Javascript
详解JS构造函数中this和return
2017/09/16 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
vue按需加载实例详解
2019/09/06 Javascript
wxpython学习笔记(推荐查看)
2014/06/09 Python
在Python程序中实现分布式进程的教程
2015/04/28 Python
遗传算法之Python实现代码
2017/10/10 Python
Python3基于sax解析xml操作示例
2018/05/22 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
元旦联欢会主持词
2014/03/26 职场文书
社区学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
横空出世观后感
2015/06/09 职场文书
导游词之安徽醉翁亭
2020/01/10 职场文书
关于Vue Router的10条高级技巧总结
2021/05/06 Vue.js
python神经网络编程之手写数字识别
2021/05/08 Python
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android