Я работал над GridFS с MongoDB + PHP
и способен выполнять 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
большего размера загружается, он вставляет более одной записи в БД в следующем виде
{
"_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 по умолчанию имеет две коллекции: одна называется файлами, а другая — чанками. Последний будет хранить файл, независимо от его размера, разбитый на — как вы уже догадались — куски по 255 КБ. Все это делается автоматически при использовании GridFS.
Других решений пока нет …