mysql存储图片的几种方式_PHPmysql存储照片的两种方式
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存储照片的两种方式相关推荐
- php mysql图片存储_PHP-mysql存储照片的两种方式
PHP-mysql存储照片的两种方式 方式一:把图片数据存储在数据库中(二进制) 数据库代码: CREATE TABLE `photo` ( `id` int(10) unsigned NOT NUL ...
- mysql存储图片_Python
MySQL存储图片的二进制,其字段设置为blob属性,二进制数据 1.连接数据库 import pymysql import sysconn=pymysql.connect(host='localho ...
- java用mysql存储图片_Java存储图片到Mysql
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 [1]视图层 action="${ctx}/web/UserInforServlet?method=userInforServlet" ...
- 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 ...
- Mysql使用binlog恢复数据解决误操作问题的两种方法
Mysql使用binlog恢复数据解决误操作问题的两种方法 参考文章: (1)Mysql使用binlog恢复数据解决误操作问题的两种方法 (2)https://www.cnblogs.com/Data ...
- SQLServer:GUI方式、SQL语句两种方式建立视图和GUI方式设置主键、约束等
SQLServer:GUI方式.SQL语句两种方式建立视图和GUI方式设置主键.约束等 目录 题目要求 解题流程 (1).建立视图 (2)GUI方式设置主键.约束等 题目要求 基于表DEPT01和 ...
- 网络接入方式常用的有两种
网络接入方式常用的有两种: 1.宽带接入,也就是需要进行PPPOE拨号接入的网络. 在这种接入方式中,无论如何都需要首先进行PPPOE拨号的,只是在设置了路由器,由路由器运行PPPOE拨号之后,用户电 ...
- 冷却水的循环方式有哪几种_循环冷却水系统,按照通风方式可分为 和 两种。...
循环冷却水系统,按照通风方式可分为 和 两种. 答: 自然通风冷却系统 机械通风冷却系统 创业过程是一个充满了不确定性的过程,团队中可能因为能力.观念等多种原因不断有人在离开,同时也有人在要求加入.因 ...
- controller 有两种写法,讨论一下两种写法的区别:
controller 有两种写法,讨论一下两种写法的区别: 写法 1: app.controller('myCtrl', function($scope, $location) { $scope.my ...
最新文章
- 免费正则表达式辅助工具(转)
- 你的Windows电脑里有哪些效率翻倍的生产力软件?
- mysql左连接去重查询_MYSQL-多表查询
- 计算机itunes无法安装,手把手给你细说win7系统电脑无法安装itunes的解决方案
- linux卸载git,并且安装新版本git
- python线程执行完后释放内存_Python中的线程终止与内存释放
- [3rgb.com开发笔记] 初步设想篇
- 平面设计就业方向是什么?
- 国科大模式识别与机器学习课程整理
- 财智V6.0(完美破解序列号特别版)
- 阿里云DataV功能及案例
- python学习笔记30(利用turtle绘制最基本的几何图形)
- 【强化学习】基本知识梳理
- 【DTM】HUAWEI Ads与DTM网页转化追踪(一)
- 【GNN报告】复旦大学许嘉蓉:基于图数据的鲁棒机器学习
- matlab导入数据画二维云图,matlab中用xyz三组数据画出2维云图
- JAVASE常见面试题总结
- 布局 flex让元素一个靠左一个靠右
- 自行车无级变速器设计
- Web音视频入门系列——音视频基础知识