|
|
|
| Я хочу хранить фотографии на сервере, а в БД ссылки на них, как это сделать? (mysql+php) | |
|
|
|
|
|
|
|
для: Tropicano
(09.12.2004 в 21:26)
| | Фотографии большие? Почему спрашиваю - большие объёмы это не конёк MySQL, но если вы не планируете хранить больше 10 Гб, то она вполне сойдёт. При хранении бинарной информации следует воспользоваться полем типа BLOB - чтобы в текстовых полях содержимое файла не билось кодировками...
Алгоритм работы такой:
1) Загружаем на сервер файл (upload) - читаем его содержимое:
<?php
// Имя файла
$filename = "image.jpg";
// Открываем файл
$fd = fopen($filename,"r");
// Читаем его содержимое в буфер
$bufer = fread($fd,filesize($filename));
// Закрываем файл
fclose($fd);
?>
|
Уничтожаем теперь не нужный файл
2) Заносим переменную $bufer в базу данных в поле типа BLOB
3) Когда фотография нужна - извлекаем фотографию из базы данных в переменную и сново создаём файл или просто отправляем данные посетителю в браузер... | |
|
|
|
|
|
|
|
для: cheops
(09.12.2004 в 22:06)
| | а не проше автоматически создовать ссылку к фото?
По-моему так проше.
Считываем файл, имя + другую инфу и помещаем в папку, а из бд генерируем ссылки. | |
|
|
|
|
|
|
|
для: Akira
(09.12.2004 в 23:47)
| | Проще и надёжнее, но у каждого могут быть свои причины, например, фотографии продаются за деньги и хочется их надёжнее защитить. А ещё бывает так, что место на сервере под файлы тарифицируется, а под базу данных нет... очень даже удобно купить хостинг на 10 Мб, а в базу засовать 100 :))) | |
|
|
|
|
|
|
|
для: cheops
(09.12.2004 в 23:53)
| | Опа =) Надо взять на вооружение =)
PS Мой проектик разросья =)) Хотел сказать спасибо =) | |
|
|
|
|
|
|
|
для: Akira
(09.12.2004 в 23:47)
| | И все же - а как закинуть в БД только путь к картинке? | |
|
|
|
|
|
|
|
для: Caramelis_Rex
(14.05.2005 в 07:05)
| | Взять путь и записать в таблицу при помощи оператора INSERT или UPDATE, если происходит редактирование новой записи. Имеется ли у вас уже таблица, в которую необходимо поместить путь к изображению и как попадают изображения на хост по FTP или через HTML-форму? | |
|
|
|
|
|
|
|
для: cheops
(14.05.2005 в 13:19)
| | Вообще, речь идет пока что о локальной web-странице.
Подцеплять изображение я хочу через HTML-форму (непосредственно сам путь к изображению, и три значения, описывающих это фото) | |
|
|
|
|
|
|
|
для: Caramelis_Rex
(17.05.2005 в 06:59)
| | Не очень понятно в чём затруднение? | |
|
|
|
|
|
|
|
для: cheops
(17.05.2005 в 13:47)
| | Т.е. я считываю путь к изображению, присваиваю ему переменную и прописываю эту переменную (т.е. ее значение) в БД!? А в каком типе предпочтительней хранить путь? | |
|
|
|
|
|
|
|
для: Caramelis_Rex
(18.05.2005 в 06:19)
| | В любом текстовом столбце, можно TINYTEXT - в нём 255 символов, не нравится TEXT-типы, можно использовать CHAR, например CHAR(255). | |
|
|
|
|
|
|
|
для: cheops
(09.12.2004 в 22:06)
| | и с тем что храниться в бд можно работать как с файлом? допустим...у меня есть картинка и из нее надо создать еще две - маленькую и еще одну:)...для обычных файлов у меня есть алгоритм...тут все тоже самое? | |
|
|
|
|
|
|
|
для: P@Sol
(21.06.2005 в 14:13)
| | Его придётся извлечь из базы данных, если функция требует имя файла, его также придётся сохранить с временным файлом, если только содержимое файла, то передать его непосредственно из базы. | |
|
|
|
|
|
|
|
для: cheops
(09.12.2004 в 22:06)
| | вопрос по второму пункту..... а что если в $bufer есть символы которые разрушат структуру запроса (ну там кавычки двойные кавычки и всё такое)??? а если добавить слэшэй то может разрушитсья структура JPG... | |
|
|
|
|
|
|
|
для: sickness
(26.11.2005 в 14:59)
| | Слэши добавляются только на момент занесения в базу. При выводе их уже нет, если вы не замечали. | |
|
|
|