Чтение/показ из файлов или загрузка/получение из базы данных бинарных файлов (картинок)
Как с помощью ПХП выдать бинарный файл браузеру? Например, при клике мышкой по линку asd.php у человека в браузере грузиться картинка (именно картинка, а не HTML файл с тегом IMG) или выскакивает окошко с просьбой сохранить .ZIP файл.
Как загружать в базу данных бинарные файлы (картинки, архивы или др) и далее брать их в PHP программе.
Выполнте несколько примеров и вопросы исчезнут. Если проблемы с UPLOAD файлов на сервер - это совершенная другая проблема, просто новички лепят все в одну кучу - читатайте инструкцию "UPLOAD файлов на сервер" (найти ее можно, выйдя на гл. страницу - если кто не догадается).
Чтобы выдать браузеру картинку с диска сервера, надо ...
Пример 1
Создайте файл test.php и в том же каталоге картинку image.jpg. Текст test.php:
<? header("Content-type: image/gif"); readfile("image.jpg"); ?>
После этого в браузере загрузите http://ваш-сервер/.../test.php и на экране будет картинка.
Что такое Content-type: image/gif? Ответ: это тип файла, который вы собираетесь выдать браузеру. Для выдачи HTML файла пишите (вместо image/gif) text/html, для выдачи бинарного файла application/xxxxxxx ("xxxxxxx" можно заменить любым словом - браузеру по барабану, все неизвестное ему он предложит сохранить на диск). При выдаче бинарного файла, даже если это будет document.txt или image.jpg, в браузере всплывет окошко с просьбой сохранить файл, где имя файла совпадет с названием программы, т.е. test.php. Как предложить другое (заданное программером) имя, будет написано в другой раз (пока можете в форуме поискать).
Почему, выдавая JPG файл, мы пишем image/gif? Ответ: если не бы это не работало, то перед выдачей файла пришлось бы проверять тип файла (JPG/GIF/PNG). Но это работает, поэтому вегда так пишите, чтобы не делать лишнюю работу.
Пример 2
Сделайте такой файл test.html
<html><body><img src=test.php></body></html>
и в том же каталоге разместите image.jpg и text.php (текст выше), загрузите его в браузере test.html. Таким образом вы можете скрывать имена картинок, которые читаете с диска. Или брать картинку не с диска, а из базы данных, о чем ниже.
Добрый совет
Во время проведения вышеуказанных тестов, позаботьтесь о том, чтобы браузер ничего не брал из кеша, иначе глюки (не увидите обновления).
Размещение бинарных файлов (картинок) в базе данных
Для помещеня бинарного файла в базу данных, надо...
1. создайте таблицу с полем BLOB
2. прочитайте данные, которые надо поместить в базу данных, в переменную $upload. Если это файл (картинка) на диске, то сделайте это так:
<? $f=fopen("image.jpg","rb"); // имя файла или картинки -- открыли файл на чтение $upload=fread($f,filesize("image.jpg")); // считали файл в переменную fclose($f); // закрыли файл, можно опустить ...
3. защитите переменную от опасных символов ("прослешьте переменную"):
... $upload=addslashes($upload); ...
4. загрузите переменную в базу данных:
... mysql_query("INSERT INTO <таблица> (<поле>) VALUES ('$upload')"); ?>
"Таблица" - имя таблицы, "поле" - название колонки в таблице типа BLOB, что были созданы при выполнении пункта 1. Разумеется, чтобы выполнить HTML запрос надо предварительно установить соединение с базой данных.
Для взятия бинарного файла из базы данных в браузере, надо...
Вы будете смеяться, но ничего особого не надо. Просто прочитайте ее как простую переемнную из базы данных. В переменную на языке ПХП можно упихать все, что надо. Правда, есть лимит памяти (будьте внимательны с переменными от 2 МБ), о котором надо помнить. Разумеется, лимит увеличить, но это тема не данной статьи.
Чтобы показать картинку их базы данных, надо...
Освоить пример 1 этой статьи, а вместо чтения из файла, взять переменную из базы данных, примерно вот так:
<? ... // подключение к Б.Д. $res=mysql_query("SELECT <поле> FROM <таблица> WHERE <условия>") or die("SQL ERROR in line ".__LINE__.", function mysql_query"); $image=mysql_result($res, <строка>, <колонка>); // берем переменную из б.д. header("Content-type: image/gif"); echo $image; ?>
Оставлять комментарии могут только зарегистрированные пользователи.
Если вы не являетесь зарегистрированным пользователем, то вам необходимо зарегистрироваться. Регистрация бесплатна. Если вы уже зарегистрированы на CodeNet, то вам необходимо ввести логин и пароль в верхней (Alt-U) части страницы.
Источник: http://feedproxy.google.com/~r/codenet/read/~3/Zehggr6ANSU/bin.php


Поделиться статьей:
Акция: Закажи любой сайт до окончания акции и получи скидку + подбор семантического ядра + поисковую оптимизацию сайта Это позволит Вам получать еще больше трафика и соответственно клиентов из Интернета!
До конца акции осталось
0
5
4
3
2
1
0
0
9
8
7
6
5
4
3
2
1
0
0
5
4
3
2
1
0
0
9
8
7
6
5
4
3
2
1
0
0
9
8
7
6
5
4
3
2
1
0
0
9
8
7
6
5
4
3
2
1
0
|
Узнайте подробности акции у менеджеров компании по телефонам: 8-924-200-7194 г.Хабаровск 8-800-550-9899 Бесплатно по России (с 2:30 до 11:30 по Мск) |
Новые статьи и публикации
- 2021-02-24 » Как попасть в Clubhouse и что там делать: гид по новой соцсети
- 2021-02-24 » ТОП-10 онлайн-консультантов для сайта
- 2021-02-16 » UX-копирайтинг: как небольшие тексты существенно повышают продажи
- 2021-02-08 » Яндекс.Кью: особенности сервиса и его польза для бизнеса
- 2021-02-01 » Покупательское поведение пользователей: как оно изменилось за последнее время?
- 2021-01-22 » PHP и регулярные выражения: азы для новичков
- 2021-01-22 » Факторы ранжирования-2021
- 2021-01-19 » Вопросы юзабилити: на что обратить внимание в 2021 году?
- 2021-01-12 » Алгоритм YATI: новая разработка Яндекса
- 2020-12-29 » DdoS-атаки: суть и способы защиты от них
- 2020-12-21 » Оплата за конверсии в Яндекс.Директе: в чём выгода и как проходит подключение?
- 2020-12-14 » Предновогодняя суета: как привлечь клиентов и активизировать продажи?
- 2020-12-03 » Ведение блога: на своём сайте или на специальной платформе?
- 2020-11-30 » Виджеты для веб-сайтов: влияние кнопок на продажи
- 2020-11-30 » CRM: что это и как помогает бизнесу?
- 2020-11-13 » Тепловые карты сайта: особенности и возможности для продвижения
- 2020-11-11 » Яндекс.Клиенты: всё о новых возможностях георекламы
- 2020-10-27 » Описания товаров для интернет-магазинов: секреты успешных продаж
- 2020-10-27 » Увеличиваем мобильный трафик: 10 способов привлечь новых клиентов
- 2020-10-14 » Определение CMS сайта: как это сделать?
- 2020-10-13 » Сайты-агрегаторы: сотрудничать или бороться за ТОП?
- 2020-10-05 » Интернет-магазин в Instagram: как его открыть?
- 2020-09-28 » Интернет-тролли: как с ними бороться и не подмочить репутацию?
- 2020-09-17 » Bing: обновление для веб-мастеров
- 2020-09-15 » Подключение платформы Яндекс.Диалоги на веб-сайт
- 2020-09-07 » Яндекс.Вордстат: как это работает?
- 2020-08-27 » Настройка аудиорекламы в социальных сетях: как её выполнить?
- 2020-08-21 » Текст для карточки товара: как сделать идеальное описание?
- 2020-08-17 » Сайты-визитки: какими они должны быть?
- 2020-08-10 » Оценка страниц Google: как это работает?
Предоставляем полный комплекс услуг по созданию, обслуживанию и продвижению сайтов по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.