一般情况采取第一种方法,直接传文件,第二种方法适合生成的数据不用保存到本地再上传而是直接以二进制存到MongoDB,第三种方式是直接把表单上传的文件存进MongoDB.

//初始化gridfs

$conn = new Mongo(); //连接MongoDB

$db = $conn->photos; //选择数据库

$grid = $db->getGridFS(); //取得gridfs对象

//gridfs有三种方式存储文件

//第一种直接存储文件

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

//第二种存储文件二进制流

$data = 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'=>new MongoId($id))); //以_id为索引取得文件

header('Content-type: image/png'); //输出图片头

echo $logo ->getBytes(); //输出数据流

注意:在使用$grid->finOne的时候,_id的值应该是MongoDB的ObjectId类型。

php fs 上传文件,PHP操作GridFS存储文件到MongoDB的三种方式相关推荐

  1. 利用hfs工具上传文件的操作教程

    一.首先我用的hfs版本如下: 二.我们可以从hfs的帮助文档中找到关于上传文件的操作: 官方文件并不是step by step的上图红框的操作是要右键文件夹的,找到属性才可以的,如上图右. 三.用浏 ...

  2. google driver 上传文件等操作

    google driver 上传文件等操作 from __future__ import print_function import pickle import os.path from google ...

  3. idea yml文件不变成树叶_springboot获取配置文件的三种方式

    hello,大家好,有今天没有写文章了,因为呢,最近,公司有点事情,需要我呢,搭建一个demo,框架呢是springboot+Active实现消息的延时发送和定时发送功能,为了项目以后中使用到,所以呢 ...

  4. 前端上传文件或图片比较大,采用oss直传的方式解决

    最近再vue开发的h5项目遇到一个上传图片缓慢的问题,于是采用oss直传的方式解决上传大文件或图片慢的问题,废话不多说,请看代码: 首选我们要安装一个阿里oss组件:阿里云oss配置完毕  vue安装 ...

  5. h5页面怎么处理文件流_H5页面实现下载文件(apk、txt等)的三种方式

    需求描述 ---->>>评论里面指出有的类型的文件下载不了,主要是因为下面的方法本质上都是改变location.href,当浏览器不能'理解'这种类型时,就会直接下载,反之,浏览器就 ...

  6. Jenkins使用FTP上传文件报错问题处理

    Jenkins带有Publish over FTP插件,安装后并使用它就能实现FTP上传,可以用于构建后的发包操作.我们在系统管理中配置好FTP Servers后,并测试连接通过,按理在Job配置中用 ...

  7. Selenium+java - 借助autolt完成上传文件操作

    写在前面: 上传文件是每个自动化测试同学会遇到,而且可以说是面试必考的问题,标准控件我们一般用sendkeys()就能完成上传,但是我们的测试网站的上传控件一般为自己封装的,用传统的上传已经不好用了, ...

  8. web ui自动化之模拟上传文件操作

    文章目录 前言 方法一.使用Autolt生成exe文件,在Python中调用 AutoIt介绍及安装 定位元素插件的使用 编写脚本 将脚本转换成可执行文件 python代码 在python中调用 方法 ...

  9. jmeter --上传文件

    jmeter-场景-上传文件-send-a-file 简要说就3点: POST请求 Request的参数都写在路径内,不写在表单里 上传的文件写在表单里 只要记住以上3点,也就避免了在设计脚本的时候走 ...

最新文章

  1. Mysql从5.0升级到 5.1.73
  2. 【Indiegogo众筹】$99高性价比RK3399超小型mini主机
  3. win8更改计算机账户密码忘记了怎么办,密码忘记怎么办?WIN8平板电脑如何重置密码?...
  4. 人工智能取代医生AI画出鼻咽癌放疗靶区,准确性与医生相当
  5. get php 怎么用,php getdate函数怎么用
  6. SharePoint Server 2010 一步一步从入门到精通
  7. 那么您想做微服务吗? 请观看微服务以防万一
  8. JavaScript:class类的实现方式及特点
  9. ie浏览器当前的安全设置使计算机面临风险,IE安全设置
  10. SSM整合——简单的小项目实战
  11. 数理知识(1):虚无假设、显著性检验、统计推断、P值法
  12. 解决MacBookPro git push提示You hasn‘t joined this enterprise
  13. 除夕跨年烟花特效[原创]
  14. position 属性
  15. 向量召回在躺平APP的实践
  16. bt ct 计算机辅助翻译,计算机辅助翻译报告
  17. 3060ti海力士测试
  18. 比较容易考前计算机好的985大学,容易考的985有哪些?附性价比高的985大学排名...
  19. 老毛子、华硕固件USB连接打印机,普通打印机变无线打印机
  20. 转贴]一个计算机高手的成长——推荐

热门文章

  1. sqlmap源码阅读系列init中的_cleanupOptions
  2. react hooks_如何破坏React Hooks的基础
  3. Redux中的功能式React式编程简介
  4. 设置api密钥_我应该将我的API密钥设置多长时间?
  5. java调用sqlserver存储过程_Java中调用SQLServer存储过程示例
  6. php weize_docs.html
  7. MySQL进阶之索引
  8. ie678,FF,chrome的css兼容性
  9. ASP.NET企业开发框架IsLine FrameWork系列之十五--框架配置信息大全(下)
  10. 母版页嵌套子母版页通信