X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Загрузка картинок на сайт, добавление в БД и вывод её из БД
Kdes70
Kdes70
Topic Starter сообщение 19.2.2012, 20:10; Ответить: Kdes70
Сообщение #1


Здравствуйте ! помогите новичку в реализации вот такой задачи:
как организовать загрузку изображения (gif, jpeg, psd) в БД, а после вывести из БД, уменьшив её пропорционально до определенного значения(например, по высоте до 300px)?
Интересует, какой тип поля в БД должен быть, как вывести из него картинку в нужном месте?
Заранее благодарю за любую оказанную помощь

[php]
$allowed_filetypes = array('.jpg','.gif','.bmp','.png'); // Здесь мы перечисляем допустимые типы файлов

$max_filesize = 524288; // Максимальный размер загружаемого файла в байтах (в данном случае он равен 0.5 Мб).

$upload_path = './files/'; // Место, куда будут загружаться файлы (в данном случае это папка 'files').

$filename = $_FILES['userfile']['name']; // В переменную $filename заносим точное имя файла (включая расширение).

$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); // В переменную $ext заносим расширение загруженного файла.

// Сверяем полученное расширение со списком допутимых расширений, которые мы определили в самом начале. Если расширение загруженного файла не входит в список разрешенных, то прерываем выполнение программы и выдаем соответствующее сообщение.

if(!in_array($ext,$allowed_filetypes))
die('Данный тип файла не поддерживается.');

// Теперь проверим размер загруженного файла и если он больше максимально допустимого, то прерываем выполнение программы и выдаем сообщение.

if(filesize($_FILES['userfile']['tmp_name']) > $max_filesize)
die('Фаил слишком большой.');

// Проверяем, доступна ли на запись папка, определенная нами под загрузку файлов (папка files). Если вдруг недоступна, то выдаем сообщение, что на папку нужно поставить права доступа 777.

if(!is_writable($upload_path))
die('Невозможно загрузить фаил в папку. Установите права доступа - 777.');

// Загружаем фаил в указанную папку.
if(move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_path . $filename))
{
echo 'Ваш фаил успешно загружен <a href="' . $upload_path . $filename . '">смотреть</a>';
}
else
{
echo 'При загрузке возникли ошибки. Попробуйте ещё раз.';
}

?>[/php]

вот нашел вот такой обработчик, как занести путь и названия картинки в БД??
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
сообщение 19.2.2012, 21:47; Ответить: sc2r2bey
Сообщение #2


так вам нужно саму картинку занести в БД или картинку на сервер, а путь к ней и имя в БД?


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 19.2.2012, 23:04; Ответить: matroskin8
Сообщение #3


MySQL позволяет это сделать, но вот делать так крайне не желательно по нескольким причинам:
- очень велика нагрузка на сервер БД;
- лишение посетителей сайта радости кэширования, поскольку картинка в БД может храниться только в бинарной форме.
Гораздо правильнее хранить картинки в каталоге - что и делает Ваш скрипт - а в БД заносить имя картинки. При выводе картинки просто берем ее имя из БД и подставляем в путь.
как организовать загрузку изображения (gif, jpeg, psd) в БД..?
Интересует, какой тип поля в БД должен быть..?

Но если уж так хочется... Для поля с картинками выбирается подходящий BLOB-тип в зависимости от максимального размера картинки.

...после вывести из БД?

Создаем отдельный файл .php (например, get_img.php), где получаем идентификатор картинки для вывода... выбираем картинку из БД, формируем для браузера заголовок, который "скажет", что отдается не html-документ, а картинка, выводим картинку конструкцией echo. Запрос картинки из другого файла происходит, соответственно, таким образом:
<img src="get_img.php?id=1" alt="" /> <!-- идентификатор картинки -->


...уменьшив её пропорционально до определенного значения(например, по высоте до 300px)?

Ну, это уже чистый HTML... просто указывается высота картинки и браузер сам уменьшит ее пропорционально:
<img src="get_img.php?id=1" alt="" height="300" /> <!-- идентификатор картинки -->
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Kdes70
Kdes70
Topic Starter сообщение 20.2.2012, 2:01; Ответить: Kdes70
Сообщение #4


файлы то я в каталоге хранить буду.
а какую переменную мне в базу надо занести из обработчика? $upload_path эту или $filename или оба ??
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 20.2.2012, 11:47; Ответить: matroskin8
Сообщение #5


Kdes70, код же откомментирован. Файлы помещаются в каталог, указанный в переменной $upload_path. Имя файла содержится в переменной $filename. В БД достаточно заносить только имя файла... каталог для всех картинок будет одинаков, т.е. не уникален, а потому помещать еще его название в БД - излишне.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Kdes70
Kdes70
Topic Starter сообщение 20.2.2012, 11:51; Ответить: Kdes70
Сообщение #6


спасибо за ясное обьяснения)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matroskin8
matroskin8
сообщение 20.2.2012, 12:30; Ответить: matroskin8
Сообщение #7


Пожалуйста :blink:

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Ваш сайт блокирует Роскомнадзор?
23 hollywooduk 5096 27.3.2024, 10:43
автор: hollywooduk
Открытая тема (нет новых ответов) Тысячи ботовых переходов на сайт
18 Suagaring 4542 26.3.2024, 21:42
автор: c4p1t4l15t
Открытая тема (нет новых ответов) Блог: городской сми сайт в Прибалтике
23 kapusta1 3541 24.3.2024, 22:02
автор: Liudmila
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлы[Услуги] Баннер/Графика/Сайт
238 FillPlay 179409 23.3.2024, 16:31
автор: freeax
Открытая тема (нет новых ответов) Пишет кто отзывы на сайт в янднекс с разных аккаунтах
1 TenDemon_rs 1134 22.3.2024, 13:18
автор: writer80


 



RSS Текстовая версия Сейчас: 29.3.2024, 19:43
Дизайн