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

发布网友

我来回答

3个回答

热心网友

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


 

?>

热心网友

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

热心网友

这种代码,百度一下,网上大把的有。追问data:image/svg+xml;base,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVV
图片数据格式是这样的,怎么保存,我搜的没法保存

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com