Лучший способ хранить и доставлять файлы на CMS - PullRequest
0 голосов
/ 06 июня 2010

Прежде всего, это не другой вопрос хранения изображений в БД и файловой системе. Я уже храню изображения в файловой системе. Я просто изо всех сил пытаюсь найти лучший способ показать их всем моим пользователям.

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

<img src="/_Media/0027a0af636c57b75472b224d432c09c.jpg" />

Как видите, это не самый красивый способ показать изображение (или файл), и название ничего не говорит об изображении.

Я работал с системой CMS на работе, которая хранит все загруженные файлы в одной таблице, для доступа к этому изображению она использует что-то вроде этого:

<img src="../getattachment/94173104-e03c-499b-b41c-b25ae05a8ee1/Menu-1/Escritorios.aspx?width=175&height=175" />

Как вы можете видеть, путь к изображению теперь имеет значение по сравнению с другим, проблема в том, что этот путь является большой нагрузкой в ​​БД, например, на последнем сайте, который я сделал, у меня есть область у которого около 60 изображений, чтобы показать 60 изображений, мне нужно было бы сделать как минимум 60 отдельных запросов к базе данных, помимо других запросов, чтобы получить различное содержимое на странице.

Я думаю, вы понимаете мою дилемму, кто-нибудь проходил через эту проблему, который может дать мне несколько советов о том, как решить эту проблему?

Спасибо ..

1 Ответ

0 голосов
/ 06 июня 2010

Вы всегда можете использовать .htaccess, чтобы переписать URL и убрать понятное имя. Итак, взяв ваш пример, вы можете отобразить источник изображения как что-то вроде:

/Media/0027a0af636c57b75472b224d432c09c/MyPictures/Venice.jpg

Вы можете использовать htaccess для фактического запроса:

/Media/0027a0af636c57b75472b224d432c09c.jpg

Другой вариант - иметь полностью дружественное имя:

/Media/MyPictures/Venice.jpg

И перенаправьте его в PHP-файл, который проверяет URL-адрес и генерирует хеш, чтобы затем он знал действительное имя файла изображения на сервере. Затем скрипт php должен установить тип содержимого, прочитать изображение и вывести его. Основным недостатком этого метода является то, что вы можете столкнуться с коллизиями, так как два изображения могут иметь одинаковый хэш. Учитывая, что то же самое может произойти и с вашим текущим методом, я предполагаю, что это не проблема.

...