php实现上传图片保存到数据库的方法


Posted in PHP onFebruary 11, 2015

php实现上传图片保存到数据库的方法。分享给大家供大家参考。具体分析如下:

php 上传图片,一般都使用move_uploaded_file方法保存在服务器上。但如果一个网站有多台服务器,就需要把图片发布到所有的服务器上才能正常使用(使用图片服务器的除外)
如果把图片数据保存到数据库中,多台服务器间可以实现文件共享,节省空间。

首先图片文件是二进制数据,所以需要把二进制数据保存在mysql数据库。
mysql数据库提供了BLOB类型用于存储大量数据,BLOB是一个二进制对象,能容纳不同大小的数据。

BLOB类型有以下四种,除存储的最大信息量不同外,其他都是一样的。可根据需要使用不同的类型。

TinyBlob       最大 255B
Blob              最大 65K
MediumBlob  最大 16M
LongBlob      最大 4G

数据表photo,用于保存图片数据,结构如下:

CREATE TABLE `photo` (  

  `id` int(10) unsigned NOT NULL auto_increment,  

  `type` varchar(100) NOT NULL,  

  `binarydata` mediumblob NOT NULL,  

  PRIMARY KEY  (`id`)  

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

upload_image_todb.php:

<?php  

// 连接数据库  

$conn=@mysql_connect("localhost","root","")  or die(mysql_error());  

@mysql_select_db('demo',$conn) or die(mysql_error()); 
// 判断action  

$action = isset($_REQUEST['action'])? $_REQUEST['action'] : ''; 
// 上传图片  

if($action=='add'){  

    $image = mysql_escape_string(file_get_contents($_FILES['photo']['tmp_name']));  

    $type = $_FILES['photo']['type'];  

    $sqlstr = "insert into photo(type,binarydata) values('".$type."','".$image."')";  

    @mysql_query($sqlstr) or die(mysql_error());  

    header('location:upload_image_todb.php');  

    exit();  

// 显示图片  

}elseif($action=='show'){  

    $id = isset($_GET['id'])? intval($_GET['id']) : 0;  

    $sqlstr = "select * from photo where id=$id";  

    $query = mysql_query($sqlstr) or die(mysql_error());  

    $thread = mysql_fetch_assoc($query);  

    if($thread){  

        header('content-type:'.$thread['type']);  

        echo $thread['binarydata'];  

        exit();  

    }  

}else{  

// 显示图片列表及上传表单  

?>  

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  

<html>  

 <head>  

  <meta http-equiv="content-type" content="text/html; charset=utf-8">  

  <title> upload image to db demo </title>  

 </head>  

  

 <body>  

  <form name="form1" method="post" action="upload_image_todb.php" enctype="multipart/form-data">  

  <p>图片:<input type="file" name="photo"></p>  

  <p><input type="hidden" name="action" value="add"><input type="submit" name="b1" value="提交"></p>  

  </form>  

  

<?php  

    $sqlstr = "select * from photo order by id desc";  

    $query = mysql_query($sqlstr) or die(mysql_error());  

    $result = array();  

    while($thread=mysql_fetch_assoc($query)){  

        $result[] = $thread;  

    }  

    foreach($result as $val){  

        echo '<p><img src="upload_image_todb.php?action=show&id='.$val['id'].'&t='.time().'" width="150"></p>';  

    }  

?>  

</body>  

</html>  

<?php  

}  

?>

php实现上传图片保存到数据库的方法

php实现上传图片保存到数据库的方法

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
相对路径转化成绝对路径
Apr 10 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
Dec 19 PHP
解析PHP中的unset究竟会不会释放内存
Jul 18 PHP
php 批量添加多行文本框textarea一行一个
Jun 03 PHP
Thinkphp实现MySQL读写分离操作示例
Jun 25 PHP
php数字运算验证码的实现代码
Jul 30 PHP
Smarty环境配置与使用入门教程
May 11 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
Jun 11 PHP
laravel如何开启跨域功能示例详解
Aug 31 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
PHP设计模式之工厂模式定义与用法详解
Apr 03 PHP
零基础php编程好学吗
Oct 11 PHP
php使用curl获取https请求的方法
Feb 11 #PHP
php+html5使用FormData对象提交表单及上传图片的方法
Feb 11 #PHP
php判断并删除空目录及空子目录的方法
Feb 11 #PHP
php获取YouTube视频信息的方法
Feb 11 #PHP
php实现图片局部打马赛克的方法
Feb 11 #PHP
php实现获取文件mime类型的方法
Feb 11 #PHP
php强制更新图片缓存的方法
Feb 11 #PHP
You might like
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
PHP常量define和const的区别详解
2019/05/18 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
PHP高并发和大流量解决方案整理
2021/03/09 PHP
JavaScript 闭包在封装函数时的简单分析
2009/11/28 Javascript
javascript 函数速查表
2010/02/07 Javascript
JQuery 文本框使用小结
2010/05/22 Javascript
修改jQuery Validation里默认的验证方法
2012/02/14 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
2012/12/12 Javascript
JS获取农历日期具体实例
2013/11/14 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
JavaScript返回网页中锚点数目的方法
2015/04/03 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
2015/04/07 Javascript
Javascript中arguments用法实例分析
2015/06/13 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
在Swiper内如何制作CSS3动画效果示例代码
2017/12/07 Javascript
Node实战之不同环境下配置文件使用教程
2018/01/02 Javascript
React注册倒计时功能的实现
2018/09/06 Javascript
LayUI数据接口返回实体封装的例子
2019/09/12 Javascript
Django objects的查询结果转化为json的三种方式的方法
2018/11/07 Python
python 定时器,轮询定时器的实例
2019/02/20 Python
PyTorch基本数据类型(一)
2019/05/22 Python
Python中sys模块功能与用法实例详解
2020/02/26 Python
在TensorFlow中实现矩阵维度扩展
2020/05/22 Python
超级实用的8个Python列表技巧
2020/08/24 Python
Aeropostale官网:美国著名校园品牌及青少年服饰品牌
2019/03/21 全球购物
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
入党积极分子思想汇报
2014/01/02 职场文书
会计自我鉴定
2014/02/04 职场文书
手机被没收检讨书
2014/02/22 职场文书
社会实践先进工作者事迹材料
2014/05/06 职场文书
2014年政教处工作总结
2014/12/20 职场文书
音乐教师个人总结
2015/02/06 职场文书
奖学金个人总结
2015/03/04 职场文书
新郎接新娘保证书
2015/05/08 职场文书
聊聊Python String型列表求最值的问题
2022/01/18 Python