我正在尝试使用 GridFS 将一堆 pdf 文件插入 MongoDB,但收到一条MongoGridFSException
消息:error setting up file name in path,其中name是文件系统上 pdf 文档的绝对路径。
我正在使用一个非常简单的 CLI 脚本:
$it = new DirectoryIterator(__DIR__ .'/files');
while ($it as $file) {
$grid->storeFile($file->getPathname(), array('metadata' => $metadata));
}
我发现 GridFS 缺乏文档令人不安。MongoGridFS和storeFile()中的示例都只显示一个简单的文件名作为第一个参数;如果从这个文件名中检索数据,脚本假设什么 basePath (cwd
,__DIR__
或完全不同的东西?)或者我可以添加绝对路径(从错误消息来看,可能不是)?
我正在考虑storeBytes(file_get_contents($file->getPathname())
改用,但是当没有与之关联的文件名时,如何检索文件?我是否在第二个参数(选项数组)中添加文件名?
另外,如果我想知道存储文件的类型/类型,我是否必须在元数据中手动指定它,还是在插入文件时自动确定?
TL;DR:我不知道如何使用 GridFS,而且 php-docs 质量很差。至少有人可以指出更好的示例/文档吗?