PHP MongoDB GridFS 存储文件的方法详解_MongoDB

<?php
//初始化gridfs
$conn = new Mongo(); //连接MongoDB
$db = $conn->photos; //选择数据库
$grid = $db->getGridFS(); //取得gridfs对象

gridfs有三种方式存储文件

第一种直接存储文件

$id = $grid->storeFile("./logo.png");

第二种存储文件二进制流

$data = http://www.bkjia.com/PHPjc/get_file_contents("./logo.png");
$id = $grid->storeBytes($data,array("parame"=>'附加参数将随图片一起存入'));

第三种保存直接表单提交的文件$_FILES

$id = $grid->storeUpload('upfile');//相当于
$id = $grid->storeFile($_FILES[‘upfile'][‘tmp_name']);
//--------------以上是保存图片--下面开始读取图片----------------//
保存成功后返回$id = md5字符串$logo = $grid->findOne(array('_id'=>$id));
 //以_id为索引取得文件
header('Content-type: image/png');
//输出图片头
echo $logo ->getBytes();
//输出数据流?>

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
, mongodb
, gridfs
存储文件
mongodb存储过程详解、mongodb gridfs、mongodb gridfs 查询、mongodb gridfs java、nginx mongodb gridfs,以便于您获取更多的相关知识。

时间: 2024-09-20 10:32:47

PHP MongoDB GridFS 存储文件的方法详解_MongoDB的相关文章

Mongodb中MapReduce实现数据聚合方法详解_MongoDB

Mongodb是针对大数据量环境下诞生的用于保存大数据量的非关系型数据库,针对大量的数据,如何进行统计操作至关重要,那么如何从Mongodb中统计一些数据呢? 在Mongodb中,给我们提供了三种用于数据聚合的方式: (1)简单的用户聚合函数: (2)使用aggregate进行统计: (3)使用mapReduce进行统计: 今天我们首先来讲讲mapReduce是如何统计,在后续的文章中,将另起文章进行相关说明. MapReduce是啥呢?以我的理解,其实就是对集合中的各个满足条件的文档进行预处理

MongoDB数据库中索引(index)详解_MongoDB

索引:特殊的数据结构,存储表的数据的一小部分以实现快速查询 优点: 1.大大减少了服务器需要扫描的数据量 2.索引可以帮助服务器避免排序或使用临时表 3.索引可以将随机io转换为顺序io 索引评估:三星(非常好) 一星:索引如果能将相关的记录放置到一起 二星:索引中数据的存储顺序与查找标准中顺序一致 三星:如果索引中包含查询中所需要的全部数据:(覆盖索引) DBA书:关系型数据库索引设计与优化 索引类别: 顺序索引 散列索引:将索引映射至散列桶上,映射是通过散列函数进行的 评估索引的标准: 访问

iOS UITableView代理方法详解

IOS UITableView的代理方法详解 一.补充 在上一篇博客中,http://my.oschina.net/u/2340880/blog/404605,我将IOS中tableView(表视图)的一些常用方法总结了一下,这篇将tableView的代理方法作了总结,对上一篇博客进行了补充. 二.UITableViewDataSourc(数据源代理) 1.必须实现的回调方法 返回每个分区的行数 - (NSInteger)tableView:(UITableView *)tableView nu

ASP包含文件方法详解

详解 ASP包含文件方法详解 SSI 指令为用户提供在 Web 服务器处理之前将一个文件的内容插入到另一个文件的方法.ASP 只使用这一机制的 #include 指令.要在 .asp 文件中插入一个文件,使用下面的语法: <!--#include virtual | file ="filename"--> virtual 和 file 关键字指示用来包含该文件的路径的类型,filename 是您想包含的文件的路径和名称. 被包含文件不要求专门的文件扩展名:但是,为被包含文件

如何远程调用Access数据库方法详解

  如何远程调用Access数据库方法详解: 使用了TCP/IP,ADO及XML(需要安装Microsoft XML 4.0.).分服务器和客户端两部分,服务器可以多用户同时连接.远程连接Access数据库有很多方法,我以前已经比较详细的回答过(见下面所列的5种方法),我现在这个例子属于其中的第3种方法(不需要使用RDS或Web服务器). 远程连接access数据库的几个方法: 1.建立VPN(Virtual Private Network),这样你的电脑和主机的连接就与局域网无异,然后把服务器

ASP.NET动态设置页面标题的方法详解

这篇文章介绍了ASP.NET动态设置页面标题的方法详解,有需要的朋友可以参考一下     ASP.NET为我们提供了一个控件类:System.Web.UI.HtmlControls.HtmlGenericControl.它可以实现 HTML的元素的一个实例,比如在.cs代码中控制aspx中的<td>元素(注意,它不是<ASP:TableCell>). 我们知道,页面标题是被包含在<TITLE></TITLE>中的,而<TITLE>也是一个HTML

计算及通道保细节磨皮美白方法详解

计算及通道保细节磨皮美白方法详解 计算与通道混合磨皮方法是较为流行的,也是精度较高的磨皮方法.操作起来可能会麻烦一点,大致需要经过以下几个过程:首先要不原始图片稍微调亮,然后进入通道面板把蓝色通道复制一层,再对得到的副本通道应用一些滤镜,操作的目的是把人物脸部瑕疵部分的色调加强.加了滤镜以后再用计算加强几次即可得到我们需要的选区,把选区反选后回到图层面板稍微用曲线等调亮一点,非常完美的效果就出来了. 原图 最终效果  1.打开原图素材,按 CTRL+J,复制一个图层,然后在图中的红圈那里,把图层

Lua中break语句的使用方法详解

  这篇文章主要介绍了Lua中break语句的使用方法详解,是Lua入门学习中的基础知识,需要的朋友可以参考下 当循环中遇到break语句,循环立即终止,程序控制继续下一个循环语句后面. 如果您正在使用嵌套循环(即一个循环里面另一个循环),break 语句将停止最内层循环的执行并开始执行的下一行代码的程序后段. 语法 Lua break语句语法如下: 代码如下: break 例子: 代码如下: --[ local variable definition --] a = 10--[ while l

Ruby中的钩子方法详解

  这篇文章主要介绍了Ruby中的钩子方法详解,本文讲解了什么是钩子方法.included.Devise中的 included.extended.ActiveRecord中的 extended.prepended.inherited等内容,需要的朋友可以参考下 Ruby的哲学理念是基于一个基本的要素,那就是让程序员快乐.Ruby非常注重程序员的快乐,并且也提供了许多不同的方法来实现它. 它的元编程能力能够让程序员编写在运行时动态生成的代码.它的线程功能使得程序员有一种优雅的的方式编写多线程代码.