2014-09-23 3 views
0

Я работаю над GridFS с помощью MongoDB + PHP и способен выполнять операции CRUD. Мне нужно загрузить загружаемые файлы расширения файлов. Для примера см ниже type, что в настоящее время сохраняется в Монго для различных типов файлов:PHP MongoDB extract Тип файла

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 из большего размера будет загружен, он вставляет более одной записи в БД в следующем виде

{ 
    "_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" 
} 

Пожалуйста, помогите.

Спасибо.

ответ

0

Вы можете просто добавить необходимые данные для сохранения в запись GridFS's metadata и запросить ее так же, как и с любой другой коллекцией, например.

db.collection.files.find({"metadata.mimetype":/^image/i}) 

Я не понимаю, почему несколько записей необходимо сохранить. По умолчанию GridFS имеет две коллекции, которые называются файлами, а другая - кусками. Последний будет хранить файл, независимо от его размера, разделить на него - вы догадались - куски 255 КБ. Все это делается автоматически при использовании GridFS.

+0

Как достичь того же, используя php с mongo? – Slimshadddyyy

+0

Я слишком плохо знаю PHP, но я уверен, что [docs] (http://php.net/manual/en/class.mongogridfs.php) поможет. –