PHP怎么把图片数据保存为jpg图片到服务器目录

现在用js获取到了图片数据,怎么把这数据传给PHP然后保存为图片形式到服务器目录里... 现在用js获取到了图片数据,怎么把这数据传给PHP然后保存为图片形式到服务器目录里 展开
 我来答
jianmrright47
2015-10-03 · TA获得超过1.3万个赞
知道小有建树答主
回答量:1547
采纳率:81%
帮助的人:412万
展开全部
  1. 第一步:通过$_FILES获取文件信息。

  2. 第二步:指定新文件名称以及路径,并赋值给一个变量。

  3. 第三步:通过move_uploaded_file上传文件。

  4. 第四步:上传成功后,将数值存入数据库服务器目录即可。

  • 代码如下

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"<Script>window.alert('对不起!你输入的信息不完整!');history.back()</Script>"; 
$sql="insert into upload(title,pic) values('$title','$pic')"; 
$result=mysql_query($sql,$conn); 
//echo"<Script>window.alert('信息添加成功');location.href='upload.php'</Script>"; 

?> 
<html> 
<head> 
<title>文件上传实例</title> 
</head> 
<body> 
<form method="post" action="?action=save" enctype="multipart/form-data"> 
<table border=0 cellspacing=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> 
<td><input name="title" type="text" id="title"></td> 
</tr> 
<tr> 
<td>文件: </td> 
<td><label> 
<input name="file" type="file" value="浏览" > 
<input type="hidden" name="MAX_FILE_SIZE" value="2000000"> 
</label></td> 
</tr> 
<tr> 
<td> </td> 
<td><input type="submit" value="上 传" 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>您的文件已经上传完毕 上传图片预览: </center><br><center><img src='$uploadfile'></center>"; 
echo "<br><center><a href='upload.htm'>继续上传</a></center>"; 


 

?>
冷三叔
2015-01-18 · TA获得超过276个赞
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:40.5万
展开全部
楼主,你可以用 ajax 试一试
js 要 传送数据给 PHP 的话,就是 JS 要发送服务器请求,目前我所知道的方法是: post / get 通过 一个隐藏按钮,另一种是 ajax ,楼主可以尝试一下
更多追问追答
追问

这是处理图片数据的代码,打开1.png的时候提示文件损坏,传过来的数据是data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVV...
这样的

追答
你 echo 一下 PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVV. 数据,然后在新的文件中 添加一个  header("Content-type:image/jpg"); 试试,看看图片是否正常显示
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
竹林ting风雨
2015-01-18 · TA获得超过1512个赞
知道大有可为答主
回答量:2614
采纳率:42%
帮助的人:1306万
展开全部
这种代码,百度一下,网上大把的有。
追问
data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVV
图片数据格式是这样的,怎么保存,我搜的没法保存
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式