假设我的服务器有4GB内存,我上传了一个大小为5GB的文件。我如何使用gridfs下载该文件。以下网站指出http://www.php.net/manual/en/mongogridfsfile.getbytes.php 如果你的文件大于内存而不是问题,但没有告诉解决方案。
任何人都可以为此提供任何解决方案。 我使用这个演示代码来访问文件。
<?php
// Connect to Mongo and set DB and Collection
$mongo = new Mongo();
$db = $mongo->myfiles;
// GridFS
$gridFS = $db->getGridFS();
// Find image to stream
$file = $gridFS->findOne("win.tar");
// Stream image to browser
header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"win.tar\"");
echo $file->getBytes();
?>
答案 0 :(得分:3)
从PHP驱动程序的1.3.0版开始,您可以使用$MongoGridFSFile->getResource()作为PHP流访问GridFS文件。
使用该方法,您可以迭代读取数据并将其打印出来,从而避免服务器上的内存限制。
答案 1 :(得分:1)