我使用php在Mongodb中存储了超过250MB的压缩文件。但我无法找回它。它只显示“0”数字。以下是我的代码。
$id = $_GET['id'];
require 'dbconnection.php';
$mongo = DBConnection::instantiate();
$gridFS = $mongo->database->getGridFS();
$object = $gridFS->findOne(array('_id' => new MongoId($id)));
header("Content-Transfer-Encoding: binary");
header('Content-type: '.$object->file['filetype']);
header('Expires: 0');
header("Content-disposition: attachment; filename=".$object->file['filename']);
//header('Content-name: '.$object->file['filename']);
header('Content-Type:application-x/force-download');
echo $object->getBytes();
检查一下。这适用于小于100MB的文件。
答案 0 :(得分:2)
阅读文档http://php.net/manual/en/mongogridfsfile.getbytes.php
警告:这会将文件加载到内存中。如果文件更大 比你的记忆,这会引起问题!
所以你需要以块的形式存储大文件,然后循环并回显块,我搜索谷歌并找到了这个(3.显示如何根据块访问文件):
http://blog.hardkap.com/index.php/posts/00069/MongoDB---GridFS