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 相关文章推荐
APMServ使用说明
Oct 23 PHP
谈谈新手如何学习PHP
Dec 14 PHP
php生成随机数或者字符串的代码
Sep 05 PHP
php知道与问问的采集插件代码
Oct 12 PHP
迅速确定php多维数组的深度的方法
Jan 07 PHP
YII中assets的使用示例
Jul 31 PHP
php中最简单的字符串匹配算法
Dec 16 PHP
PHP实现简单爬虫的方法
Jul 29 PHP
Zend Framework数据库操作方法实例总结
Dec 11 PHP
PHP二维关联数组的遍历方式(实例讲解)
Oct 18 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
Feb 13 PHP
PHP copy函数使用案例代码解析
Sep 01 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 Session会话超时时间设置方法
2014/06/10 PHP
php接口实现拖拽排序功能
2018/04/23 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
JScript 脚本实现文件下载 一般用于下载木马
2009/10/29 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
jquery的ajax异步请求接收返回json数据实例
2014/06/16 Javascript
jQuery实现高亮显示的方法
2015/03/10 Javascript
微信小程序图表插件(wx-charts)实例代码
2017/01/17 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
2017/06/23 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
微信小程序 腾讯地图SDK 获取当前地址实现解析
2019/08/12 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
JS实现小星星特效
2019/12/24 Javascript
js实现蒙版效果
2020/01/11 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
python33 urllib2使用方法细节讲解
2013/12/03 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
python之pexpect实现自动交互的例子
2019/07/25 Python
安装Pycharm2019以及配置anconda教程的方法步骤
2019/11/11 Python
Win10里python3创建虚拟环境的步骤
2020/01/31 Python
Python使用扩展库pywin32实现批量文档打印实例
2020/04/09 Python
使用OpenCV实现道路车辆计数的使用方法
2020/07/15 Python
通过实例了解python__slots__使用方法
2020/09/14 Python
详解Canvas 实现炫丽的粒子运动效果(粒子生成文字)
2018/02/01 HTML / CSS
Urban Outfitters美国官网:美国生活方式品牌
2016/08/26 全球购物
台湾最大网路书店:博客来
2018/03/18 全球购物
linux面试题参考答案(6)
2014/08/29 面试题
受欢迎的大学生自我评价
2013/12/05 职场文书
违纪检讨书2000字
2014/02/08 职场文书
合伙经营协议书
2014/04/18 职场文书
梅花魂教学反思
2014/04/25 职场文书
2015婚礼主持词开场白
2015/05/28 职场文书
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers
详解Mysql 函数调用优化
2021/04/07 MySQL
vite+vue3.0+ts+element-plus快速搭建项目的实现
2021/06/24 Vue.js