Создание миниатюр с помощью GridFS + MongoDB + PHP - PullRequest
0 голосов
/ 08 октября 2010

Я создаю сайт, где клиент, который будет продавать свою фотографию, продает большую ее часть и, вероятно, получит немало трафика.Вероятно, около 2-5 тысяч уникальных в день.Я использую MongoDB с PHP, и я прочитал, что я должен использовать GridFS для хранения этих больших файлов.Более 2 МБ-5 МБ фотографий, но очевидно, что BW будет очень затратным (я на облачном хостинге), и загрузка этих изображений сделает загрузку страниц бесконечной.

Итак, как мне создавать эскизы с помощью GridFS в PHPа MongoDB?Я гуглил его и не могу найти никакой реальной информации, кроме людей, указывающих на: http://www.php.net/manual/en/class.mongogridfs.php

, но я не уверен, что делать с этой информацией.Нужно ли мне (надеюсь, нет, это было бы немного грязно):

Загрузить -> сохранить оригинал -> использовать GD Lib для изменения размера оригинала -> измененный размер изображения в GridFS в качестве мета-значения к исходному изображению

Ответы [ 2 ]

0 голосов
/ 10 ноября 2010

Одна вещь, которую я сделал, была в try {} catch

  1. Сохранение исходного изображения (или вашего наибольшего размера) с использованием информации META, такой как user_id, post_id, size = original, height = xxx, width =yyy
  2. Переберите все ваши размеры и сохраните, используя те же данные META, что и основная информация, size = $ size, width = xxx, height = yyy, parent_id = ID вашего исходного файла

если происходит какое-то исключение (сбой gd, сбой монго и т. Д.), Вы удаляете файлы, чтобы не тратить их на хранение.

0 голосов
/ 13 октября 2010

В итоге я просто создал свои собственные эскизы после того, как сохранил их в MongoDB с помощью GD2, а затем сохранил эскизы вместе с полным размером.

...