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 相关文章推荐
php流量统计功能的实现代码
Sep 29 PHP
PHP Cookie的使用教程详解
Jun 03 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(八)
Jun 23 PHP
PHP生成条形码大揭秘
Sep 24 PHP
php实现CSV文件导入和导出
Oct 24 PHP
PHP性能优化大全(php.ini)
May 20 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
Jun 13 PHP
php动态读取数据清除最右边距的方法
Apr 12 PHP
PHP 中常量的知识整理
Apr 14 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
Aug 10 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 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
基于mysql的bbs设计(三)
2006/10/09 PHP
discuz 首页四格:最新话题+最新回复+热门话题+精华文章插件
2007/08/19 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
PHP中如何使用session实现保存用户登录信息
2015/10/20 PHP
PHP pear安装配置教程
2016/05/14 PHP
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
jQuery源码分析-04 选择器-Sizzle-工作原理分析
2011/11/14 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
ListBox实现上移,下移,左移,右移的简单实例
2014/02/13 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
2015/09/19 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
2017/02/27 Javascript
关于在mongoose中填充外键的方法详解
2017/08/14 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
Python3使用requests登录人人影视网站的方法
2016/05/11 Python
Python中is与==判断的区别
2017/03/28 Python
Python实现字符串格式化输出的方法详解
2017/09/20 Python
浅谈Python接口对json串的处理方法
2018/12/19 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
2019/04/23 Python
python实现PID算法及测试的例子
2019/08/08 Python
python 遗传算法求函数极值的实现代码
2020/02/11 Python
Keras框架中的epoch、bacth、batch size、iteration使用介绍
2020/06/10 Python
Python本地及虚拟解释器配置过程解析
2020/10/13 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
The Beach People美国:澳洲海滨奢华品牌
2018/07/05 全球购物
Oracle快照(snapshot)
2015/03/13 面试题
护理专业的自荐信
2013/10/22 职场文书
社团成立邀请函
2014/01/08 职场文书
护士见习期自我鉴定
2014/02/08 职场文书
新教师工作感言
2014/02/16 职场文书
初中生操行评语大全
2014/04/24 职场文书
4s店活动策划方案
2014/08/25 职场文书
元旦标语大全
2014/10/09 职场文书
丧事答谢词大全
2015/09/30 职场文书