Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Храние изображений в БД
Форумы портала PHP.SU » » Работа с СУБД » Храние изображений в БД

Страниц (1): [1]
 

1. Minigun - 16 Октября, 2011 - 23:24:44 - перейти к сообщению
Подскажите как это делается и расскажите подводные камни
2. caballero - 16 Октября, 2011 - 23:33:49 - перейти к сообщению
делается просто читаешь файл и пихаешь в blob поле
так же и обратно - прочитал поле вывел echo
в mysql это проще чем в любой другой базе

подводные камни бОльшая нагрузка на процессор
бонус - консистентность данных и возможность управлять доступом средствами PHP

таблицу с блобами лучше отделить от остальных полей (имя файоа там тип и пр. путем создания отношения один-к-одному (плюс партицирование таблицы если раздуется в будущем)


если начнется холивар где хранить картинки в базе или файлах - не обращай внимания
3. White - 16 Октября, 2011 - 23:34:25 - перейти к сообщению
зачем лишний раз нагружать БД?
(Добавление)
caballero пишет:
консистентность данных и возможность управлять доступом средствами PHP
закрываем каталог для прямого доступа, оставляем права только веб-серверу, делаем маленький скрипт где пишем нужные заголовки и делаем include нужного файла с изображением.
ладно если еще это мускул, на одной машине с веб сервером, а если это postgre на удаленной машине, и изображения достаточно большие. последствия могут быть самыми печальными.
4. caballero - 17 Октября, 2011 - 00:10:39 - перейти к сообщению
Цитата:
закрываем каталог для прямого доступа, оставляем права только веб-серверу, делаем маленький скрипт где пишем нужные заголовки и делаем include нужного файла с изображением.


И это вместо простого sql запроса который выдает картинку в альбоме если залогинился Вася и не выдает если Петя.

Цитата:
ладно если еще это мускул, на одной машине с веб сервером, а если это postgre на удаленной машине, и изображения достаточно большие.

А если это оракл или mssql с полем типа FILESTREAM то вообще никаких последствий. Зачем строить предположения?
5. White - 17 Октября, 2011 - 08:01:03 - перейти к сообщению
caballero пишет:
И это вместо простого sql запроса который выдает картинку в альбоме если залогинился Вася и не выдает если Петя.
проверка авторизации в обоих случаях одинакова, а include(file) будет выглядеть значительно проще и понятней "простого запроса", с последующим его выводом.
caballero пишет:
Зачем строить предположения?
это не предположения а варианты, и то с каким sql сервером работает ТС, непосредственно влияет на наилучший вариант реализации. и если это действительно
Цитата:
оракл
то лучше использовать локаторы BFILE.
6. Minigun - 18 Октября, 2011 - 20:16:17 - перейти к сообщению
Спасибо всем кто помог.
буду разбиратся

 

Powered by ExBB FM 1.0 RC1