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 相关文章推荐
windows下PHP APACHE MYSQ完整配置
Jan 02 PHP
Dedecms常用函数解析
Feb 01 PHP
php站内搜索并高亮显示关键字的实现代码
Dec 29 PHP
解析PHP多种序列化与反序列化的方法
Jun 06 PHP
php使用$_POST或$_SESSION[]向js函数传参
Sep 16 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
Nov 14 PHP
WordPress开发中短代码的实现及相关函数使用技巧
Jan 05 PHP
基于PHP实现短信验证码接口(容联运通讯)
Sep 06 PHP
thinkPHP模板中for循环与switch语句用法示例
Nov 30 PHP
PHP实现的激活用户注册验证邮箱功能示例
Jun 06 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
Sep 29 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
Mar 24 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
如何开始收听短波广播
2021/03/01 无线电
从php核心代码分析require和include的区别
2011/01/02 PHP
php 日期和时间的处理-郑阿奇(续)
2011/07/04 PHP
php实现文件编码批量转换
2014/03/10 PHP
ThinkPHP中的常用查询语言汇总
2014/08/22 PHP
PHP会话控制:Session与Cookie详解
2014/09/27 PHP
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
2010/06/05 Javascript
jQuery中animate()方法用法实例
2014/12/24 Javascript
Uploadify上传文件方法
2016/03/16 Javascript
利用Vue.js指令实现全选功能
2016/09/08 Javascript
jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数
2017/06/13 jQuery
JavaScript模拟文件拖选框样式v1.0的实例
2017/08/04 Javascript
微信小程序 scroll-view实现锚点滑动的示例
2017/12/06 Javascript
jQuery实现简单的下拉菜单导航功能示例
2017/12/07 jQuery
JS同步、异步、延迟加载的方法
2018/05/05 Javascript
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
如何在selenium中使用js实现定位
2020/08/18 Javascript
python使用win32com库播放mp3文件的方法
2015/05/30 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
使用OpenCV实现仿射变换—平移功能
2019/08/29 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
2021/01/29 Python
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
Speedo速比涛法国官方网站:泳衣、泳镜、泳帽、泳裤
2019/07/30 全球购物
师范应届生求职信
2013/11/15 职场文书
前厅收银主管岗位职责
2014/02/04 职场文书
房地产广告词大全
2014/03/19 职场文书
计算机专业应届生求职信
2014/04/06 职场文书
小学生中国梦演讲稿
2014/04/23 职场文书
简历自我评价模板
2015/03/11 职场文书
乡镇团代会开幕词
2016/03/04 职场文书