上传图片保存到MySql数据库并显示--经验证有效
时间:2021-07-01 10:21:17
帮助过:40人阅读
前台(image.html):
1
<html> 2
<head> 3
<title>上传图片</title> 4
</head> 5
<body> 6
<form method="post" action="upimage.php" enctype="multipart/form-data"><center><br><br><br><br> 7
<input type="hidden" value="204800" name="MAX_FILE_SIZE"/> 8
File: <input type="file" name="imgfile" /><br><br> 9
<input type="submit" value="OK" name="submitbtn" style="width:100px;height:23px"/></center>10
</form>11
</body>12
</html>
后台处理(upimage.php):
1
<?php 2
//向数据库中插入图片 3
$imgfile=$_FILES[‘imgfile‘]; 4
$submitbtn=$_POST[‘submitbtn‘]; 5
if($submitbtn==‘OK‘ and is_array($imgfile)) 6
{ 7
$name=$imgfile[‘name‘]; //取得图片名称 8
$type=$imgfile[‘type‘]; //取得图片类型 9
$size=$imgfile[‘size‘]; //取得图片长度10
$tmpfile=$imgfile[‘tmp_name‘]; //图片上传上来到临时文件的路径11
if($tmpfile and is_uploaded_file($tmpfile)) //判断上传文件是否为空,文件是不是上传的文件12
{13
//读取图片流14
$file=fopen($tmpfile,"rb");15
$imgdata=bin2hex(fread($file,$size)); //bin2hex()将二进制数据转换成十六进制表示16
fclose($file);17
18
$mysqli=mysql_connect("localhost","root","123456"); //连接数据库函数19
mysql_select_db("test"); //选择数据库20
//插入出数据库语句,图片数据前要加上0x,用于表示16进制数21
if(mysql_query("insert into images(name,type,image) values(‘".$name."‘,‘".$type."‘,0x".$imgdata.")"))22
echo "<center>插入成功!<br><br><a href=‘disimage.php‘>显示图片</a></center>";23
else24
echo "<center>插入失败!</center>";25
mysql_close();26
}27
else 28
echo "<center>请先选择图片!<br><br><a href=‘image.html‘>点此返回</a></center>";29
} 30
else 31
echo "<center>请先选择图片!<br><br><a href=‘image.html‘>点此返回</a></center>";32
?>
显示图片(disimage.php):
1
<?php 2
mysql_connect("localhost","root","123456"); 3
mysql_select_db("test"); 4
//显示最新插入的那张图片 5
$result=mysql_query("select image from images where id=(select max(id) from images)"); 6
$row=mysql_fetch_object($result); 7
header("Content-Type:image/pjpeg"); 8
echo $row->image; 9
mysql_close();10
?>
上传图片保存到MySql数据库并显示--经验证有效
标签:indicator ref roo html http 参考 连接数据库 临时 选择图片