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

 2023-09-07 阅读 24 评论 0

摘要:一般情况采取第一种方法,直接传文件,第二种方法适合生成的数据不用保存到本地再上传而是直接以二进制存到MongoDB,第三种方式是直接把表单上传的文件存进MongoDB.//初始化gridfs$conn = new Mongo(); //连接MongoDB$db = $conn->photos; //选

一般情况采取第一种方法,直接传文件,第二种方法适合生成的数据不用保存到本地再上传而是直接以二进制存到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类型。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/16822.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息