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读MYSQL中文乱码的解决方法
Dec 17 PHP
destoon调用企业会员公司形象图片的实现方法
Aug 21 PHP
ThinkPHP基本的增删查改操作实例教程
Aug 22 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
Sep 27 PHP
完整删除ecshop中获取店铺信息的API
Dec 24 PHP
php5.4传引用时报错问题分析
Jan 22 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
Dec 19 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
微信企业转账之入口类分装php代码
Oct 01 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
Feb 25 PHP
Mac下快速搭建PHP开发环境步骤详解
May 05 PHP
PHP容器类的两种实现方式示例
Jul 24 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
如何将一个表单同时提交到两个地方处理
2006/10/09 PHP
一个用php3编写的简单计数器
2006/10/09 PHP
一个简单计数器的源代码
2006/10/09 PHP
PHP实时显示输出
2008/10/02 PHP
php中$this-&amp;gt;含义分析
2009/11/29 PHP
解析Win7 XAMPP apache无法启动的问题
2013/06/26 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
2017/05/08 PHP
php之可变变量的实例详解
2017/09/12 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
通过javascript的匿名函数来分析几段简单有趣的代码
2010/06/29 Javascript
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
Node.js开源应用框架HapiJS介绍
2015/01/14 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
浅谈JS验证表单文本域输入空格的问题
2017/02/14 Javascript
JS实现移动端实时监听输入框变化的实例代码
2017/04/12 Javascript
vue多页面项目中路由使用history模式的方法
2019/09/23 Javascript
重命名批处理python脚本
2013/04/05 Python
Python中实现字符串类型与字典类型相互转换的方法
2014/08/18 Python
python测试驱动开发实例
2014/10/08 Python
python模块简介之有序字典(OrderedDict)
2016/12/01 Python
python3+PyQt5实现自定义分数滑块部件
2018/04/24 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
Python爬取破解无线网络wifi密码过程解析
2019/09/17 Python
利用CSS3 动画 绘画 圆形动态时钟
2018/03/20 HTML / CSS
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
高档奢华时装在线目的地:FORWARD by elyse walker
2017/10/16 全球购物
final, finally, finalize的区别
2012/03/01 面试题
保送生自荐信范文
2013/10/06 职场文书
大学毕业感言100字
2014/02/03 职场文书
护理实习生带教计划
2015/01/16 职场文书
迟到检讨书
2015/01/26 职场文书
2016社区平安家庭事迹材料
2016/02/26 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python