如果您在使用mongo-php-library 2.2
司機,getGridFS()方法已不存在,但是你可以使用Bucket
類上傳和下載文件到MongoDB的網格。你可以嘗試以下方法:
//upload file
$bucket = \DB::connection('mongodb')->getMongoDB()->selectGridFSBucket();
$resource = fopen($file_path, "a+");
$file_id = $bucket->uploadFromStream($file_path, $resource);
//download file
$bucket = \DB::connection('mongodb')->getMongoDB()->selectGridFSBucket();
$file_metadata = $bucket->findOne(["_id" => $file_id]);
$path = $file_metadata->filename;
if(!file_exists($path)) {
$downloadStream = $bucket->openDownloadStream($file_id);
$stream = stream_get_contents($downloadStream, -1);
$ifp = fopen($path, "a+");
fwrite($ifp, $stream);
fclose($ifp);
}
注意$file_id
變量是一個的ObjectId,如果你有一個字符串值,你需要轉換到的ObjectId:$file_id = new \MongoDB\BSON\ObjectID($str_file_id);