PHP MongoDB提取文件类型


PHP MongoDB extract File Type

我一直在使用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

有什么功能可以实现同样的功能吗?

此外,当上传任何较大大小的PDFimage时,它会以以下形式在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时自动完成的。