PHP-mysql存储照片的两种方式

方式一:把图片数据存储在数据库中(二进制)

数据库代码:

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 ;

展现代码:

// 连接数据库

$conn=@mysql_connect("localhost","root","root") or die(mysql_error());

@mysql_select_db('test',$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:test.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{

// 显示图片列表及上传表单

?>

upload image to db demo

图片:

$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 '

';

}

?>

}

?>

结果截图:

方式二:通过在数据库中存储图片的路径来实现图片的存储

(1)将图片上传到服务器

(2)取出图片的路径存放到数据库中

(3)使用时取出数据库的路径

具体实现有兴趣的可以去完成,没有什么技术难点,欢迎大家交流!

方法优劣:

多服务器的时候应该使用第一种方法较好,单服务器第二种效率高一点

mysql存储图片的几种方式_PHPmysql存储照片的两种方式相关推荐

  1. php mysql图片存储_PHP-mysql存储照片的两种方式

    PHP-mysql存储照片的两种方式 方式一:把图片数据存储在数据库中(二进制) 数据库代码: CREATE TABLE `photo` ( `id` int(10) unsigned NOT NUL ...

  2. mysql存储图片_Python

    MySQL存储图片的二进制,其字段设置为blob属性,二进制数据 1.连接数据库 import pymysql import sysconn=pymysql.connect(host='localho ...

  3. java用mysql存储图片_Java存储图片到Mysql

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 [1]视图层 action="${ctx}/web/UserInforServlet?method=userInforServlet" ...

  4. Redis源码-ZSet:Redis ZSet存储原理、Redis ZSet命令、 Redis ZSet两种存储底层编码ziplist/dict+skiplist、Redis ZSet应用场景

    Redis源码-ZSet:Redis ZSet存储原理.Redis ZSet命令. Redis ZSet两种存储底层编码ziplist/dict+skiplist.Redis ZSet应用场景 Red ...

  5. Mysql使用binlog恢复数据解决误操作问题的两种方法

    Mysql使用binlog恢复数据解决误操作问题的两种方法 参考文章: (1)Mysql使用binlog恢复数据解决误操作问题的两种方法 (2)https://www.cnblogs.com/Data ...

  6. SQLServer:GUI方式、SQL语句两种方式建立视图和GUI方式设置主键、约束等

    SQLServer:GUI方式.SQL语句两种方式建立视图和GUI方式设置主键.约束等 目录 题目要求 解题流程 (1).建立视图 (2)GUI方式设置主键.约束等 ​ 题目要求 基于表DEPT01和 ...

  7. 网络接入方式常用的有两种

    网络接入方式常用的有两种: 1.宽带接入,也就是需要进行PPPOE拨号接入的网络. 在这种接入方式中,无论如何都需要首先进行PPPOE拨号的,只是在设置了路由器,由路由器运行PPPOE拨号之后,用户电 ...

  8. 冷却水的循环方式有哪几种_循环冷却水系统,按照通风方式可分为 和 两种。...

    循环冷却水系统,按照通风方式可分为 和 两种. 答: 自然通风冷却系统 机械通风冷却系统 创业过程是一个充满了不确定性的过程,团队中可能因为能力.观念等多种原因不断有人在离开,同时也有人在要求加入.因 ...

  9. controller 有两种写法,讨论一下两种写法的区别:

    controller 有两种写法,讨论一下两种写法的区别: 写法 1: app.controller('myCtrl', function($scope, $location) { $scope.my ...

最新文章

  1. 免费正则表达式辅助工具(转)
  2. 你的Windows电脑里有哪些效率翻倍的生产力软件?
  3. mysql左连接去重查询_MYSQL-多表查询
  4. 计算机itunes无法安装,手把手给你细说win7系统电脑无法安装itunes的解决方案
  5. linux卸载git,并且安装新版本git
  6. python线程执行完后释放内存_Python中的线程终止与内存释放
  7. [3rgb.com开发笔记] 初步设想篇
  8. 平面设计就业方向是什么?
  9. 国科大模式识别与机器学习课程整理
  10. 财智V6.0(完美破解序列号特别版)
  11. 阿里云DataV功能及案例
  12. python学习笔记30(利用turtle绘制最基本的几何图形)
  13. 【强化学习】基本知识梳理
  14. 【DTM】HUAWEI Ads与DTM网页转化追踪(一)
  15. 【GNN报告】复旦大学许嘉蓉:基于图数据的鲁棒机器学习
  16. matlab导入数据画二维云图,matlab中用xyz三组数据画出2维云图
  17. JAVASE常见面试题总结
  18. 布局 flex让元素一个靠左一个靠右
  19. 自行车无级变速器设计
  20. Web音视频入门系列——音视频基础知识

热门文章

  1. 【Python篇】Python // 与 / 的含义
  2. web应用开发实战(1)
  3. Sentencepiece构建词典
  4. 韩国KT/LG/SK机房服务器比较
  5. 微信小程序 用户中心界面(一)
  6. 参数方法,半参数方法,非参数方法
  7. 阿里云SDK播放器集成
  8. 变分推断中的ELBO(证据下界)
  9. win10无法连接这个网络的解决方案【亲测有效】
  10. 网络 | email