我一直在使用MongoDB + PHP
开发GridFS,并能够执行CRUD
操作。我需要获取正在上传的文件扩展名类型。例如,请参阅下面的type
,它被保存在Mongo中,用于不同的文件类型:
image = image/jpeg or image/png
text = text/plain
docx = application/octet-stream
xlsx = application/octet-stream
pdf = application/pdf
我如何获取或转换上面提到的文件类型,如下面的
image = jpeg or png
text = txt
docx = doc
xlsx = xlsx
pdf = pdf
有什么功能可以实现同样的功能吗?
此外,当上传任何较大大小的PDF
或image
时,它会以以下形式在DB中插入多个记录
{
"_id" : ObjectId("542118ab920662000a000055"),
"filename" : "blob",
"type" : "application/octet-stream",
"title" : "blob",
"isFolder" : 0,
"uploadDate" : ISODate("2014-09-23T06:52:27.000Z"),
"length" : 338277,
"chunkSize" : 261120,
"md5" : "d4f9269491c30a0ab086b3bab02c81ee"
}
请帮忙。
谢谢。
您可以简单地将保存时所需的数据添加到GridFS条目的元数据中,并像处理其他所有集合一样进行查询,例如
db.collection.files.find({"metadata.mimetype":/^image/i})
不过,我不明白为什么需要保存多个记录。GridFS默认有两个集合,一个被称为文件,另一个被称作块。后者将保存文件,无论其大小,都将被拆分为255kB的块。所有这些都是在使用GridFS时自动完成的。