上传图片保存到MySql数据库并显示--经验证有效
Posted wangxiaoy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上传图片保存到MySql数据库并显示--经验证有效相关的知识,希望对你有一定的参考价值。
以下方法仅供参考,只是介绍下这一种方法而已。欢迎指正!!
前台(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>
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 else
24 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?>
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 else
24 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?>
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数据库并显示--经验证有效的主要内容,如果未能解决你的问题,请参考以下文章