PHP实现将HTML5中Canvas图像保存到服务器的方法本文实例讲述了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);
【php存储图像数据 php图片缓存】 $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如何把图像数据流保存imagegif(resource $image[, string $filename]) 从 image图像以 filename 为文件名创建一个GIF 图像 。image参数是imagecreate() 或imagecreatefrom* 函数的返回值 。
imagejpeg(resource $image[, string $filename]) 从 image图像以 filename 为文件名创建一个JPEG 图像 。
imagepng(resource $image[, string $filename]) 将 GD 图像流(image)以PNG 格式输出到标准输出(通常为浏览器)php存储图像数据 , 或者如果用filename 给出了文件名则将其输出到该文件 。
filename 文件保存的路径,如果未设置或为 NULL,将会直接输出原始图象流 。
这几个函数php存储图像数据你参考一下,希望对你有帮助 。
php图片保存到数据库1.图片转换 将上传的图片读取到一个字符串中,再用base64对数据进行编码 $img =base64_encode(file_get_contents($_FILES['file_head']['tmp...
2.显示图片 imgsrc="https://www.04ip.com/post/{$base64String}" 这样就能把图片显示出来了
如何在PHP中将图片存放ORACLE中三种方式
1、最常用php存储图像数据的php存储图像数据 , 数据库不是存图片,而是存图片php存储图像数据的URL,用的时候在img里调用url就行php存储图像数据了php存储图像数据;
2、把图片转为base64字符串存入数据,在img里面可以直接调这个字符串;
3、把图片转为二进制,存入数据库 , 用的时候需要一个php文件把二进制读取出来,在输出为图片,img里面的src属性就是这个php文件 。
不知道你存图片的用途是什么,不过基本上第一种方法就能满足大部分需求 。
PHP怎么把图片数据保存为jpg图片到服务器目录第一步:通过$_FILES获取文件信息 。
第二步:指定新文件名称以及路径,并赋值给一个变量 。
第三步:通过move_uploaded_file上传文件 。
第四步:上传成功后,将数值存入数据库服务器目录即可 。
代码如下
1.conn.php
?
$host="localhost"; //数据库服务器名称
$user="root"; //用户名
$pwd="1721"; //密码
$conn=mysql_connect($host,$user,$pwd);
mysql_query("SET
character_set_connection=gb2312,
character_set_results=gb2312,
character_set_client=binary",$conn);
if ($conn==FALSE)
{
echo "center服务器连接失败!br请刷新后重试 。/center";
return true;
}
$databasename="database";//数据库名称
do
{
$con=mysql_select_db($databasename,$conn);
}while(!$con);
if ($con==FALSE)
{
echo "center打开数据库失败!br请刷新后重试 。/center";
return true;
}
?
2.upload.php
?php
if ($_GET['action'] == "save"){
include_once('conn.php');
include_once('uploadclass.php');
$title=$_POST['title'];
$pic=$uploadfile;
if($title == "")
echo"Scriptwindow.alert('对不起!你输入的信息不完整!');history.back()/Script";
$sql="insert into upload(title,pic) values('$title','$pic')";
$result=mysql_query($sql,$conn);
//echo"Scriptwindow.alert('信息添加成功');location.href='https://www.04ip.com/post/upload.php'/Script";
}
?
html
head
title文件上传实例/title
/head
body
form method="post" action="?action=save" enctype="multipart/form-data"
tablecellspacing=0 cellpadding=0 align=center width="100%"
tr
td width=55 height=20 align="center" /TD
td height="16"
table width="48%" height="93" border="0" cellpadding="0" cellspacing="0"
tr
td标题:/td
tdinput name="title" type="text" id="title"/td
/tr
tr
td文件: /td
tdlabel
input name="file" type="file" value="https://www.04ip.com/post/浏览"
input type="hidden" name="MAX_FILE_SIZE" value="https://www.04ip.com/post/2000000"
/label/td
/tr
tr
td /td
tdinput type="submit" value="https://www.04ip.com/post/上 传" name="upload"/td
/tr
/table/td
/tr
/table
/form
/body
/html
3.uploadclass.php
?php
$uploaddir = "upfiles/";//设置文件保存目录 注意包含/
$type=array("jpg","gif","bmp","jpeg","png");//设置允许上传文件的类型
$patch="upload/";//程序所在路径
//获取文件后缀名函数
function fileext($filename)
{
return substr(strrchr($filename, '.'), 1);
}
//生成随机文件名函数
function random($length)
{
$hash = 'CR-';
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
$max = strlen($chars) - 1;
mt_srand((double)microtime() * 1000000);
for($i = 0; $i$length; $i)
{
$hash .= $chars[mt_rand(0, $max)];
}
return $hash;
}
$a=strtolower(fileext($_FILES['file']['name']));
//判断文件类型
if(!in_array(strtolower(fileext($_FILES['file']['name'])),$type))
{
$text=implode(",",$type);
echo "您只能上传以下类型文件: ",$text,"br";
}
//生成目标文件的文件名
else{
$filename=explode(".",$_FILES['file']['name']);
do
{
$filename[0]=random(10); //设置随机数长度
$name=implode(".",$filename);
//$name1=$name.".Mcncc";
$uploadfile=$uploaddir.$name;
}
while(file_exists($uploadfile));
if (move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile))
{
if(is_uploaded_file($_FILES['file']['tmp_name']))
{
echo "上传失败!";
}
else
{//输出图片预览
echo "center您的文件已经上传完毕 上传图片预览: /centerbrcenterimg src='https://www.04ip.com/post/$uploadfile'/center";
echo "brcentera href='https://www.04ip.com/post/upload.htm'继续上传/a/center";
}
}
}
?
PHP将图片存入数据库插入图片和一般的数据没什么不同的php存储图像数据,一般数据会了php存储图像数据,传图片时候就用个move_uploaded_file改变下参数 , 主要是做这个的时候不要有负担
以下供参考
?
function upload_file($files,$folder)//上传图片
{
$file_tyle = $files['type'];
$file_type_arr = array('image/gif','image/x-png','image/jpg','image/pjpeg');
if(!in_array($file_tyle,$file_type_arr) )
{
exit('file type only can be: png,jpeg,jpg,gif');
}
$knamearray = explode(".",$files["name"]);
$kname= $knamearray[count($knamearray)-1];
$rand_str= date("ymdhis");
$file_name= $rand_str.".".$kname;
$savepath = "$folder/";
/*$savepath = "$folder/date_".date('YmdHis')."/";
if( !is_dir($savepath) ) mkdir($savepath);*/
$upfile = $savepath.$file_name;
if( !move_uploaded_file($files['tmp_name'],$upfile) )
{
exit('upload error, please check your file type: png,jpeg,jpg,gif');
}
return $file_name;//不要回传值此行可注释掉
}
?
关于php存储图像数据和php图片缓存的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。
推荐阅读
- dns劫持服务器,架设dns劫持服务器
- hbase查看分区,怎么查看hbase中的数据
- 猫咪飞行船游戏,hellokitty猫飞行冒险
- 安卓免root短信恢复,安卓手机短信一键恢复免费
- java添加下拉框代码 java下拉式菜单
- 德国sap的竞争对手,sap德国最赚钱的公司
- 竞技游戏游戏而已,菜场竞技游戏游戏
- 智齿龋齿是什么图解视频,智齿 龋
- vb.net给线程传参数 vb6 线程