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

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

本文实例讲述了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/pngbase64,',

'',

$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程序设计有所帮助。

例如你需要把内容保存在abc.txt文本文件里面,那么可以使用下面的语句:

$str=$_POST['name'] . ":" . $_POST['textarea'] ."<br>\n"

fopen('abc.txt','a')

fputs($fp,$str)

fclose($fp)

当然,上面的代码是要放在<FORM>的ACTION指定的PHP文件里面。

<meta charset=gb2312><% if request("aa")<>"" and request("bb")<>"" then dim fso,f,forappending forappending=8 Set fso = Server.CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile(Server.Mappath("aa.txt"), forappending, True) f.WriteLine request("aa") f.WriteLine request("bb") f.Close() set f=nothing set fso=nothing response.redirect Request.ServerVariables("HTTP_REFERER") else %><form name="form1" method="post" action=""><p><input name="aa" type="text"></p><p><input name="bb" type="text"></p><p><input type="submit" name="Submit" value="提交"></p></form><%end if%>


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/586074.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-07
下一篇2023-07-07

发表评论

登录后才能评论

评论列表(0条)

    保存