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 htmlspecialchars加强版
Feb 16 PHP
PHP PDO函数库详解
Apr 27 PHP
php自动加载的两种实现方法
Jun 21 PHP
PHP用SAX解析XML的实现代码与问题分析
Aug 22 PHP
php文件怎么打开 如何执行php文件
Dec 21 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
Sep 28 PHP
跟我学Laravel之请求(Request)的生命周期
Oct 15 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
May 20 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
Jun 30 PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 PHP
php获取远程图片并下载保存到本地的方法分析
Oct 08 PHP
thinkphp分页集成实例
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
老机欣赏|中国60年代精品收音机
2021/03/02 无线电
php一行代码获取文件后缀名实例分析
2014/11/12 PHP
PHP框架Laravel学习心得体会
2015/10/28 PHP
PHP超全局变量实现原理及代码解析
2020/09/01 PHP
jQuery 解析xml文件
2009/08/09 Javascript
JQuery 遮罩层实现(mask)实现代码
2010/01/09 Javascript
jQuery 选择器理解
2010/03/16 Javascript
很好用的js日历算法详细代码
2013/03/07 Javascript
JavaScript window.location对象
2014/11/14 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
Angular下H5上传图片的方法(可多张上传)
2017/01/09 Javascript
推荐三款不错的图片压缩上传插件(webuploader、localResizeIMG4、LUploader)
2017/04/21 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
2017/05/22 Javascript
jQuery实现下拉菜单的实例代码
2017/06/19 jQuery
微信小程序实现点击文字页面跳转功能【附源码下载】
2017/12/12 Javascript
React Router V4使用指南(精讲)
2018/09/17 Javascript
浅谈高大上的微信小程序中渲染html内容—技术分享
2018/10/25 Javascript
JavaScript的变量声明与声明提前用法实例分析
2019/11/26 Javascript
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
vue滑动吸顶及锚点定位的示例代码
2020/05/10 Javascript
[03:49]DOTA2英雄基础教程 光之守卫
2014/01/14 DOTA
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
详解python开发环境搭建
2016/12/16 Python
python的paramiko模块实现远程控制和传输示例
2017/10/13 Python
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
python基于itchat模块实现微信防撤回
2019/04/29 Python
大家都说好用的Python命令行库click的使用
2019/11/07 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
2020/05/22 Python
Opencv求取连通区域重心实例
2020/06/04 Python
Python如何读取、写入CSV数据
2020/07/28 Python
美国折衷生活方式品牌:Robert Graham
2018/07/13 全球购物
Ray-Ban雷朋奥地利官网:全球领先的太阳眼镜品牌
2020/10/12 全球购物
运动会广播稿150字
2014/02/19 职场文书
中学生运动会广播稿
2015/08/19 职场文书
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL