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 相关文章推荐
如何使用脚本模仿登陆过程
Nov 22 PHP
PHP 如何利用phpexcel导入数据库
Aug 24 PHP
php合并js请求的例子
Nov 01 PHP
php去除换行(回车换行)的三种方法
Mar 26 PHP
Symfony数据校验方法实例分析
Jan 26 PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 PHP
php版交通银行网银支付接口开发入门教程
Sep 26 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
php app支付宝回调(异步通知)详解
Jul 25 PHP
浅谈PHP array_search 和 in_array 函数效率问题
Oct 15 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
Mar 23 PHP
PHP强制转化的形式整理
May 22 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文件注释标记及规范小结
2012/04/01 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
2015/09/29 PHP
javascript字典探测用户名工具
2006/10/05 Javascript
加速IE的Javascript document输出的方法
2010/12/02 Javascript
jquery获取子节点和父节点的示例代码
2013/09/10 Javascript
javascript中setTimeout的问题解决方法
2014/05/08 Javascript
jQuery中parents()方法用法实例
2015/01/07 Javascript
JS获取地址栏参数的两种方法(简单实用)
2016/06/14 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
BootStrap 模态框实现刷新网页并关闭功能
2017/01/04 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
js数组方法reduce经典用法代码分享
2018/01/07 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
js JSON.stringify()基础详解
2019/06/19 Javascript
速记Python布尔值
2017/11/09 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
2018/02/26 Python
Python中的函数作用域
2018/05/07 Python
Linux下python制作名片示例
2018/07/20 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
int在python中的含义以及用法
2019/06/27 Python
Python中的引用和拷贝实例解析
2019/11/14 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
浅谈Html5页面打开app的一些思考
2020/03/30 HTML / CSS
物流专业大学应届生求职信
2013/11/03 职场文书
业务经理的岗位职责
2013/11/16 职场文书
优秀的计算机专业求职信范文
2013/12/27 职场文书
成考报名单位证明范本
2014/01/16 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
无刑事犯罪记录证明范本
2014/09/29 职场文书
法人代表证明书格式
2014/10/01 职场文书
《大禹治水》教学反思
2016/02/22 职场文书
演讲稿之我的初心我的成长
2019/08/12 职场文书
深入详解JS函数的柯里化
2021/06/09 Javascript