| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > Алгоритм работы с изображениями |
| Автор: insy 15.7.2009, 18:13 |
| Народ, не могли бы вы подробнее рассказать как работать с изображениями в бд... Я знаю, что в базе должны храниться только ссылки а сами изображения в папке... мне интересно именно как это работает и по возможности примеры... Заранее благодарю! |
| Автор: Ипатьев 15.7.2009, 18:34 |
| Да, в общем-то, и ссылки совсем не обязательно. Вообще, не очень понятен вопрос. Все зависит от конкретной задачи. |
| Автор: insy 15.7.2009, 18:42 |
| Например у нас есть пользователь, который хочет поставить на аватар собственное изображение.Как нам лучше это реализовать. Пользователь отправляет изображение, что происходит дальше... Заносить сразу в базу, или в базу заносить только ссылку... |
| Автор: Ипатьев 15.7.2009, 18:53 |
| Во-первых, оставь идею "заносить сразу в базу". Картинке в базе делать ну совсем нечего. База данных у нас реляционная. То есть, служит для хранения данных, которые мы можем каким-либо образом связывать между собой - складывать суммы, сортировать названия, искать тексты, группировать признаки. Ничего из этого с картинкой сделать нельзя. Картинку, лежащую на диске, вебсервер покажет в браузер сам, без начего участия. Чтобы показать картинку, лежащую в базе, придется писать отдельную программу, увеличивая нагрузку на сервер. На пустом, заметим, месте - картинка в базе нам никакой вообще пользу не приносит. Я бы в базу в этом случае не заносил вообще ничего. Во-первых, оригинальное имя картинки нас никак не интересует. Во-вторых, у нас наверняка есть уникальный id пользователя. В-третьих, аватар может быть только один. Следовательно, если сохранить картинку с именем, скажем, 234512.jpg, где имя совпадает с id, то сформировать ссылку можно будет автоматически. Расширение можно ставить любое, поскольку все браузеры, насколько я помню, различают картинки по формату, а не по расширению. |
| Автор: Ипатьев 15.7.2009, 19:24 |
| Но вообще-то, база данных - дело десятое. Сначала надо научиться просто принимать файлы от пользователя. |
| Автор: nezabor 15.7.2009, 20:18 |
| а если аватарок больше то тогдым как, да и переносить данные(пользователей) на другой сервер будет проще |
| Автор: pd107 15.7.2009, 21:03 | ||||
| insy, я никогда так не делал, если не ошибаюсь, примерно так: загрузка в базу:
вывод:
по идее примерно так Ипатьев, не о том спрашивали |
| Автор: nezabor 15.7.2009, 21:05 |
| а чтобы уникальные имена делались подскажешь |
| Автор: bars80080 15.7.2009, 22:46 |
спрашивали не о том, но судя по вопросу надо вначале уяснить базовые понятия |
| Автор: pd107 15.7.2009, 22:53 |
| nezabor, http://ua.php.net/tempnam |
| Автор: Ипатьев 16.7.2009, 08:13 |
| pd107, спасибо, я сам разберусь, о чем прашивали, а о чем - нет. |
| Автор: insy 16.7.2009, 08:42 |
| Все конечно замечательно, но не могли бы вы привести пример(Добавления изображения пользоваетелем при хранении в базе только ссылки на изображение ) т.е ссылка хранится в одном месте, само изображение в другом, а затем по этой ссылке вызывается... |
| Автор: Ипатьев 16.7.2009, 08:53 |
| insy, если ты умеешь работать с базой данных, то какая проблема записать в нее имя файла? Имя файла - это просто строка. Как имя пользователя. Имя пользователя ты можешь записать в базу данных? Если нет, то тебе надо учиться работать не с файлами, а с бадой данных. Если да - то в чем проблема записать в базу данных строку? |
| Автор: insy 16.7.2009, 09:10 |
| имя файла записать не проблема, но вот как сделать, чтобы по этому имени потом определялось изображение... Я не пойму именно как их связать... чтобы на сервер отправлялась картинка, а ссылка на нее хранилась в базе... и по ссылке мы в дальнейшем извлекали картинку... п.с: я просто не представляю как по другому описать данную задачу |
| Автор: bars80080 16.7.2009, 09:25 |
| insy, ну тебе же объяснили. задача разбивается на совершенно независимые этапы: 1. загрузка файла на сервер 2. запись имени в БД ты первое можешь сделать? |
| Автор: Ипатьев 16.7.2009, 09:27 |
| Не надо ничего "извлекать". Зачем что-то извлекать? Картинка у тебя лежит на сервере, вместе с остальными. Про шапку сайта у тебя не возникает вопросов, как ее извлечь? Все, что тебе надо - это вывести тег img src, в который подставить каталог и имя картинки. каталог тебе должен быть известен - ты в него записывал. имя картинки ты говоришь записать в базу не проблема. Соединяешь их вместе и получаешь искомую "ссылку". Я не понимаю, что вызывает у тебя затруднения. |
| Автор: Ипатьев 16.7.2009, 12:24 |
| Тут, наверное, надо более конкретно. Какую ссылку ты хочешь положить в базу? Приведи пример ссылки. |
| Автор: insy 16.7.2009, 14:43 |
| Разобрался сам, спасибо за помощь! |