Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
 Аватар для pixel
26 / 19 / 5
Регистрация: 19.05.2009
Сообщений: 2,290

Хранение изображений в бд

25.05.2015, 14:53. Показов 2685. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую.
Нужно хранить много картинок. Размещать в каталоге не безопасно. Подумал о базе данных. Но интересует вопрос рациональности такого подхода. Подскажите,стоит ли оно тот? Не будет ли сложнотей и вообще.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.05.2015, 14:53
Ответы с готовыми решениями:

Хранение изображений и загрузка изображений
Привет, не когда не работал с изображениями когда их много, и тут возникла такая не обходимость, делаю сайт на фреймворке. Мне надо...

Хранение изображений
Доброго времени суток! Возник такой вопрос,при создании сайта,где пользователь сможет создавать альбомы с фото,и видео,где хранятся фото? В...

Хранение изображений
Здравствуйте. Недавно решил сделать англо-язычную версию своего сайта используя домены третьего уровня. Мои каталоги стали выглядеть...

29
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
25.05.2015, 14:59
Цитата Сообщение от pixel Посмотреть сообщение
Размещать в каталоге не безопасно.
В смысле?
Обычно хранят файлы в каталоге, а пути в базе.
0
Заблокирован
25.05.2015, 15:00
Цитата Сообщение от pixel Посмотреть сообщение
Размещать в каталоге не безопасно.
Ну закрой папку для скачивания, оставь только прямой доступ с сервера. Скриптом считывай и отдавай на прямую. А если хранить в БД то потом просто гемор с дампом при переносе.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
25.05.2015, 15:13
Цитата Сообщение от Trukl Посмотреть сообщение
закрой папку для скачивания
Или можно вообще вынести из корневого каталога на каталог выше.
0
 Аватар для pixel
26 / 19 / 5
Регистрация: 19.05.2009
Сообщений: 2,290
25.05.2015, 20:39  [ТС]
господа, я так и сделал, вынес на папку выше, но теперь сижу и думаю, как же в итоге в последствии формировать страницу с этими данными, если они находятся вне досягаемости http? потому и задумался о БД. с защитой каталога у меня так ничего и не вышло, и в ранее созданных темах мне не сумели помочь в реализации защиты.
0
 Аватар для alexsamos33
669 / 640 / 335
Регистрация: 26.04.2014
Сообщений: 2,122
25.05.2015, 21:09
Цитата Сообщение от pixel Посмотреть сообщение
вынес на папку выше, но теперь сижу и думаю, как же в итоге в последствии формировать страницу с этими данными, если они находятся вне досягаемости http?
Примерно так:
PHP
1
2
3
4
5
6
7
8
9
<?php
@header("Content-Type: image/jpeg");
$url=str_replace(basename(__FILE__), '', preg_replace('@[/\\<>]@', '', $_SERVER['REQUEST_URI']));
$file_path = "/home/".$url;
if($url=="" || !file_exists($file_path)){
@header("HTTP/1.1 404 Not Found");
exit();
}
readfile($file_path);
А в HTML документах пиши что-то типа этого:
HTML5
1
<img src="getfile.php/image_name.jpg">
1
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
25.05.2015, 21:13
Цитата Сообщение от pixel
хранение изображений в бд
сохранение изображения в базе данных
PHP
1
2
3
4
5
6
$content = file_get_contents('photo.jpg');
 
$query = "INSERT INTO tbl_content
          VALUES (id, '$image_content');";
 
mysqli_query($query);
скачать картинку
PHP
1
2
3
4
5
6
7
8
$query = "SELECT *
            FROM tbl_content
           WHERE id={$_POST['image_id']};";
 
$tbl_content = mysqli_fetch_array(mysqli_query($query), MYSQL_ASSOC);
 
header('Content-Type: image/jpeg');
echo $tbl_content['image_content'];
можно вот так показывать
HTML5
1
<image src="get_image.php?image_id=0" title="" />
будет много обращений к базе данных. хорошо это либо не хорошо - не знаю.
1
 Аватар для pixel
26 / 19 / 5
Регистрация: 19.05.2009
Сообщений: 2,290
25.05.2015, 21:18  [ТС]
с БД о я разобрался бы, просто не хотелось бы создавать самому себе лишние проблемы, если есть варианты безопасного хранения просто в каталоге - лучше использовать то, что проще, что бы не грузить ресурсы сервера.
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
25.05.2015, 21:24
пускай себе грузиться сервер. что же поделаешь? все равно будет грузиться.

можно как-то "закрыть" директорию через .htaccess
0
 Аватар для pixel
26 / 19 / 5
Регистрация: 19.05.2009
Сообщений: 2,290
25.05.2015, 21:30  [ТС]
Цитата Сообщение от tolimadokara Посмотреть сообщение
можно как-то "закрыть" директорию через .htaccess
можно, но у меня не получилось. попробую как подсказал alexsamos33 но и вам спасибо.
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
25.05.2015, 21:32
Code
1
2
3
4
<FilesMatch ".*">
    Order Allow,Deny
    Deny from All
</FilesMatch>
http://stackoverflow.com/quest... -directory
1
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
26.05.2015, 06:52
Цитата Сообщение от tolimadokara Посмотреть сообщение
можно как-то "закрыть" директорию через .htaccess
Так об этом выше уже говорили :
Цитата Сообщение от Trukl Посмотреть сообщение
Ну закрой папку для скачивания, оставь только прямой доступ с сервера.
Цитата Сообщение от Para bellum Посмотреть сообщение
можно вообще вынести из корневого каталога на каталог выше
0
 Аватар для pixel
26 / 19 / 5
Регистрация: 19.05.2009
Сообщений: 2,290
11.06.2015, 23:03  [ТС]
Цитата Сообщение от tolimadokara Посмотреть сообщение
<FilesMatch ".*"> Order Allow,Deny Deny from All </FilesMatch>
я не понимаю. копирую ваш код, кладу файл с кодом в каталог на хостере, туда же кладу файл *.jpg. вызываю из браузера этот jpg и он прекрасно отображается - где ж здесь блокировка???
0
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
11.06.2015, 23:26

Не по теме:

Цитата Сообщение от pixel
я не понимаю. копирую ваш код, кладу файл с кодом в каталог на хостере, туда же кладу файл *.jpg. вызываю из браузера этот jpg и он прекрасно отображается - где ж здесь блокировка???
:pardon:



Добавлено через 16 минут
pixel. протестировал на своем сервере. вот такое выдает
Code
1
2
3
4
5
6
7
Internal Server Error
 
The server encountered an internal error or misconfiguration and was unable to complete your request.
 
Please contact the server administrator, root@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
 
More information about this error may be available in the server error log.
и ничего не отображается. файлы не просматриваются. так что работает вроде бы.

проверьте правильность имени файла .htaccess. Обязательно две c и два s.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
12.06.2015, 00:07
в .htaccess, если он размещается внутри директории, которую надо закрыть, не надо никаких директив FilesMatch и т.д.
Достаточно просто написать
Code
1
2
Order deny,allow
Deny from all
0
 Аватар для pixel
26 / 19 / 5
Регистрация: 19.05.2009
Сообщений: 2,290
12.06.2015, 00:11  [ТС]
блин, я устал уже говорить, что данный код:
Цитата Сообщение от KOPOJI Посмотреть сообщение
Order deny,allow Deny from all
НЕ РАБОТАЕТ НА МОЕМ ХОСТИНГЕ!!!
в чем может быть трабла???

Добавлено через 47 секунд
у меня тупо открывается jpg файл
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
12.06.2015, 00:16
Цитата Сообщение от pixel Посмотреть сообщение
НЕ РАБОТАЕТ НА МОЕМ ХОСТИНГЕ!!!
mod_rewrite включен?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
12.06.2015, 00:18
pixel, только в одном: хостинг не поддерживает указание директив в .htaccess и надо с него валить.
Раз не работает, и вы не хотите съезжать или мучать ТП хостинга, то, опять же, у вас остается только два пути:
хранить картинки в БД или вынести папку за корень веб-окружения. При использовании БД надо просто отправить заголовок браузеру, что это картинка, при использовании файлов в закрытой директории необходимо его еще прочитать из ФС. Разница, в общем-то, практически небольшая, за исключением быстрого возрастания размера БД, что, зачастую, чревато более длительной работой приложения.
Собственно, все это выше уже говорили, и мое предыдущее сообщение было лишь для уточнения того, что директива FilesMatch при таком использовании лишняя

Добавлено через 1 минуту
Jewbacabra, а причем тут mod_rewrite? Это все находится в mod_authz_host
1
775 / 444 / 93
Регистрация: 24.10.2012
Сообщений: 3,240
Записей в блоге: 5
12.06.2015, 00:20
Цитата Сообщение от KOPOJI
Достаточно просто написать
о, теперь работает
Code
1
2
3
Forbidden
 
You don't have permission to access /2dp/ on this server.
pixel, KOPOJI верно говорит. просто создайте файл .htaccess в каталоге и пропишите в нем 2 строчки
Code
1
2
Order deny,allow
Deny from all
pixel, вот у меня же работает?

Добавлено через 2 минуты
да. имхо, это не связанно с mod_rewrite. он же для редиректов вроде предназначен. да?

Не по теме:

мда... откуда вы все сколько знаете.

0
 Аватар для pixel
26 / 19 / 5
Регистрация: 19.05.2009
Сообщений: 2,290
12.06.2015, 00:27  [ТС]
господа, давайте по-человечьи. раз мой хостер не имеет нужной поддержки - ее нельзя обойти вообще??? (просто я думаю свой серв поднимать, поэтому искать другого смысла нет - нужно будет свой затачивать. с БД возиться не охота. как проще и правильнее сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.06.2015, 00:27
Помогаю со студенческими работами здесь

Хранение изображений в БД
Привет всем, нужен совет, подсказка, делаю Электронный каталог, - Есть категории в них могут быть под категории, пока не знаю делать это...

Как организовать хранение изображений на сервере?
Всем привет. Есть доска объявлений, в которой пользователи загружают фотографии. Как эти фотографии лучше всего размещать? В одной...

Хранение изображений
Здравствуйте, вот заинтересовался таким вот вопросом: как хранить изображения для улучшения производительности? Например: есть...

Хранение gif изображений в XML файлах и вытаскивание этих изображений из XML документа без потери анимации
У меня есть форма с ListView, List&lt;Image&gt;, ImageList. Пользователь может добавлять изображения, после чего они будут храниться в List и...

Хранение изображений
Помогите, мне требуется запихнуть все изображения в какую-нибудь библиотеку или что-нибудь типо того, чтобы просто пользователь не мог...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru