PHP将图片存入MYSQL
2009-11-17 10:02
302 查看
完整的实现了PHP将图片存入MYSQL
前提:
1 首先必须拥有PHP的运行环境,另外还得有MYSQL数据库
2 如果文件不能上传成功请检查pics是否是可写的权限
首先先把pic2db.rar文件解压到PHP可以运行目录下。
其次在MYSQL中建立一个数据库:pic2db,然后在该数据库下建立一个表,表结构为:
CREATE TABLE `pic` (
`pic_id` int(11) NOT NULL auto_increment,
`pic_userid` int(11) NOT NULL,
`pic_content` longblob NOT NULL,
PRIMARY KEY (`pic_id`)
)
再接着修改common_db.php中的数据库连接的用户名和密码,根据你MYSQL设置的来
最后运行upload.php文件进行上传,而display_all.php是显示数据库中所有的图片
图片上传upload.php
连接数据库的common_db.php:
处理上传的post_action.php:
显示所有图片的display_all.php:
图片内容的文件:
前提:
1 首先必须拥有PHP的运行环境,另外还得有MYSQL数据库
2 如果文件不能上传成功请检查pics是否是可写的权限
首先先把pic2db.rar文件解压到PHP可以运行目录下。
其次在MYSQL中建立一个数据库:pic2db,然后在该数据库下建立一个表,表结构为:
CREATE TABLE `pic` (
`pic_id` int(11) NOT NULL auto_increment,
`pic_userid` int(11) NOT NULL,
`pic_content` longblob NOT NULL,
PRIMARY KEY (`pic_id`)
)
再接着修改common_db.php中的数据库连接的用户名和密码,根据你MYSQL设置的来
最后运行upload.php文件进行上传,而display_all.php是显示数据库中所有的图片
图片上传upload.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>上传</title> </head> <body> <form action="post_action.php" method="post" enctype="multipart/form-data" name="form1" id="form1"> <p> </p> <p> <label></label> <label> <input type="file" name="file" /> </label> </p> <p> <label> <input type="submit" name="Submit" value="提交" /> </label> </p> <p> </p> </form> </body> </html>
连接数据库的common_db.php:
<?php /** * 连接数据库的函数 * 连接成功将会返回一个连接资源 * @return mix */ function getLink() { $link = mysql_connect("localhost","root","") or die("数据库服务器连接失败!"); if(!mysql_select_db("crm",$link)) die("数据库连接失败!"); return $link; } ?>
处理上传的post_action.php:
<?php /** * 本文件是将图片文件上传到服务器端 * 并且读取该文件的二进制内容存入到MYSQL的 * pic表中longblob字段 * */ //强制页面使用gb2312编码 header("Content-Type: text/html; charset=gb2312"); if(!isset($_FILES['file'])){ echo "no upload"; die; } //首先将文件上传到pics文件夹中 list($flag3,$msg3)=uploaderFILES($_FILES['file']); //如果成功 if($flag3==true) { $file3=$msg3; $PSize = filesize($msg3); //取得文件内容 $mysqlPicture = addslashes(fread(fopen($msg3, "r"), $PSize)); //构造SQL语句并保存到数据库中 $sql="INSERT INTO `pic` (`pic_userid` , `pic_content` ) VALUES ( '2', '".$mysqlPicture."')"; include_once("common_db.php"); $link=getLink(); mysql_query($sql,$link); unlink($msg3);//删除pics文件夹中该文件 echo "上传成功!<br><a href="display_all.php" mce_href="display_all.php" >查看图片</a>"; }else{ //失败提示错误原因 echo $msg3; } /** * 文件上传的自定义 函数 * Enter description here... * @param $file * @param $upload_dir 存放路径 * @return array */ function uploaderFILES($file,$upload_dir="pics/"){ $file_types_array=array("jpg","gif","png","jpeg"); $max_file_size = 1048576; if($file["error"]!=UPLOAD_ERR_OK) return array(false,"文件上传出现错误!"); if($file["name"]=="")return array(false,"文件上传名为空!"); if($file["size"]>$max_file_size) return array(false,"文件大小太大了!"); $oldFilename = $file["name"]; $filename = explode(".",$oldFilename); $filenameext = $filename[count($filename)-1]; if(!in_array($filenameext,$file_types_array)) return array(false,"不是有效的图片文件!"); $newFilename="_".time()."_".rand(10000,20000).".".$filenameext; if(move_uploaded_file($file["tmp_name"], $upload_dir.'/'.$newFilename)){ return array(true, $upload_dir.$newFilename); }else{ return array(false,"文件:$oldFilename 没有上传成功!"); } } ?>
显示所有图片的display_all.php:
<?php /** * 取得数据库中pic表里的图片内容,然后循环显示出来 * 注意这里不是真正显示图片的地方这里只是显示一个 * 图片的HTML标签<img src="display_one.php?pic_id=n" mce_src="display_one.php?pic_id=n" /> * 真正的图片内容在display_one.php中 * */ $sql="select * from `pic` "; include_once("common_db.php"); $link=getLink(); $res=mysql_query($sql,$link); $i=0; //循环显示所有图片 while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) { $i++; echo"图片".$i.":<br>"; echo "<IMG SRC="/" mce_SRC="/""display_one.php?pic_id=".$row['pic_id']."/" ><p>"; } ?>
图片内容的文件:
<?php //显示一个图片的内容 //文件头是image/gif,这样在<IMG SRC="display_one.php?pic_id=1" mce_SRC="display_one.php?pic_id=1" />就可以显示图片了 if(!isset($_GET['pic_id'])) die; $sql="select * from `pic` where pic_id= ".intval($_GET['pic_id']); include_once("common_db.php"); $link=getLink(); $res=mysql_query($sql,$link); $row = mysql_fetch_array($res, MYSQL_ASSOC) ; Header( "Content-type: image/gif"); echo $row['pic_content']; ?>
相关文章推荐
- PHP裁剪图片并存入mysql
- python将图片以二进制存入mysql并取出来
- php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!
- php下将图片以二进制存入mysql数据库中并显示的实现代码
- 用 PHP 和 MySQL 保存和输出图片
- 用PHP和MySQL保存和输出图片
- 一步一步教你用PHP+MySql搭建网站 No.4 文章编辑、图片上传
- 在php中处理上传的图片,并将地址保存到mysql中
- 关于 安乐业(php+mysql)不能上传图片的处理
- php上传图片到服务器&&上传excel到服务器并写入MySQL
- 如何将图片存入MySQL中的blob去
- 截取 google map图片 并存入mysql GIS 影像 截图
- php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
- php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
- 使用PhpMysql实现图片文件上传下载
- 怎样用PHP在Mysql中直接储存图片
- 用PHP和MySQL保存和输出图片
- PHP部分--图片上传服务器、图片路径存入数据库,并读取
- PHP&MySQL图片上传及管理
- MySQL存入图片+Qt读入读出数据库中的图片