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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP怎么把图片数据保存为jpg图片到服务器目录相关的知识,希望对你有一定的参考价值。

现在用js获取到了图片数据,怎么把这数据传给PHP然后保存为图片形式到服务器目录里

    第一步:通过$_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"<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>"; 
 
 
 
 
?>

参考技术A 楼主,你可以用 ajax 试一试
js 要 传送数据给 PHP 的话,就是 JS 要发送服务器请求,目前我所知道的方法是: post / get 通过 一个隐藏按钮,另一种是 ajax ,楼主可以尝试一下追问

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

追答

你 echo 一下 PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVV. 数据,然后在新的文件中 添加一个 header("Content-type:image/jpg"); 试试,看看图片是否正常显示

追问

使用base64_decode后,生成的文件里面是这样的

本回答被提问者和网友采纳
参考技术B 这种代码,百度一下,网上大把的有。追问

data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVV
图片数据格式是这样的,怎么保存,我搜的没法保存

电脑图片怎么改成png格式

图片的格式分为很多种,但在我们生活中最常用的图片格式还是以JPG为主。那么怎样把照片变成JPG格式?接下来详细为大家介绍转化方法:

方法一:美图秀秀修改格式: 1、打开图片。2、然后点保存,在窗口里面写着保存格式(如:jpg)的地方下拉,选择需要的格式。

方法二:用windows自带的 [画图] 工具。开始>所有程序>附件>画图>打开要编辑的图片>用鼠标点击菜单栏的>文件>保存为>在保存类型那里选择 jpg、gif、png 任意一种,一般用jpg。

方法三:1.点击电脑左下方的“开始”菜单,在搜索栏中输入“画图”查找画图工具。2.点击打开画图工具,在操作界面中的左上角点击菜单栏选择打开。3.导入要转化成jpg格式的图片,点击打开。4.再次点击左上角的“文件”菜单,点击“另存为”。5.在保存类型里选择jpg格式,点击保存就可以。

方法四:用photoshop在PHOTOSHOP里面把做好的照片存储或另存为的时候,会弹出来一个对话框,对话框里有一个格式,你在格式的右边下拉找到JPGE(*.JPGE;*.JPGE;*.jpe),保存即可。

方法五、用QQ,选择打一个聊天窗口,然后点发送图片,选择图片,在图片上单面右键--另存为,选择jpg格式。

参考技术A

电脑里的JPG格式的图片转换成PNG格式的可以通过格式工厂这个软件来进行格式的转换,转换的操作方法如下:

1、首先在格式工厂软件的首页点击你要转换图片的最终格式【PNG】。

2、进入到接下来的操作页面中以后,然后需要我们进行点击【添加文件】。

3、接着需要你进行选择要改变格式的照片,然后点击下方的【打开】。

4、添加好要改变格式的文件以后,接着点击上方的【确定】。

5、最后在任务的启动页面的上方点击【开始】就可以实现电脑里的JPG格式的图片转换成PNG格式的了。

以上是关于PHP怎么把图片数据保存为jpg图片到服务器目录的主要内容,如果未能解决你的问题,请参考以下文章

怎么样让PHP组合多张图片并生成保存到指定目录?

php 上传图片:php上传图片代码(同时图片保存到数据)

android怎么将图片传送到服务器,然后将图片保存在mysql数据库中?

php为啥上传图片会失败

php 怎么把上传的图片路劲存到mysql数据库,然后再在页面读取出来?

php 保存编辑器内容中的远程图片为本地图片