чтение/показ из файлов или загрузка/получение из базы данных бинарных файлов (картинок)

 
Как создать сайт
 
  Меню  
   
     
  как создать сайт. Статьи  
 
хостинг (6)
дизайн (9)
раскрутка сайта (8)
домены (7)
поисковики (11)
html (11)
php (6)
разное (2)
 
     
  Новые статьи  
  Новые статьи на тему "как создать сайт":

создать форум

Использование Google Sitemaps

Просто о продвижении сайтов. Часть Первая.

 
     
  TOP Хостинг  
 
 
     
  Разделы  
   
     
  Ссылки  
   
     
  Личная панель  
  Здравствуйте, Гость, для доступа к личной панели вы должны зарегистрироваться. Если вы зарегистрированы, пожалуйста, войдите.  
     
  Счетчики, ссылки  
  Rambler's Top100 Рейтинг@Mail.ru +
карта сайта
 
     
  чтение/показ из файлов или загрузка/получение из базы данных бинарных файлов (картинок)  
 
Пользовательского поиска

разработка сайтов

разработка и создание сайтов

Если у вас возникнут вопросы по языку php или просто по созданию сайтов, смело обращайтесь к нам на форум в раздел "создание сайтов". Вам обязательно ответят (мы гарантируем!).

Думаю веб мастерам будет интересен такой вид заработка, как игра на валютной бирже, в последнее очень популярный в интернете. Читайте статьи раздела forex.


как создать сайт / Статьи / php / чтение/показ из файлов или загрузка/получение из базы данных бинарных файлов (картинок)

Вернуться в раздел "php"

"чтение/показ из файлов или загрузка/получение из базы данных бинарных файлов (картинок)"

Тема заметки:

Как с помощью ПХП выдать бинарный файл браузеру? Например, при клике мышкой по линку asd.php у человека в браузере грузиться картинка (именно картинка, а не HTML файл с тегом IMG) или выскакивает окошко с просьбой сохранить .ZIP файл.

Как загружать в базу данных бинарные файлы (картинки, архивы или др) и далее брать их в PHP программе.

Выполнте несколько примеров и вопросы исчезнут. Если проблемы с UPLOAD файлов на сервер - это совершенная другая проблема, просто новички лепят все в одну кучу - читатайте инструкцию "UPLOAD файлов на сервер".

1. Чтобы выдать браузеру картинку с диска сервера, надо...

Пример 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. Таким образом вы можете скрывать имена картинок, которые читаете с диска. Или брать картинку не с диска, а из базы данных, о чем ниже.

Добрый совет

Во время проведения вышеуказанных тестов, позаботьтесь о том, чтобы браузер ничего не брал из кеша, иначе глюки (не увидите обновления).

2. Размещение бинарных файлов (картинок) в базе данных

Для помещеня бинарного файла в базу данных, надо...

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;
?>

3. Если у вас глюки...

то прочитайте метод спасения от глюков, он описан в самом низу статьи "UPLOAD файлов на сервер".

http://www.php.spb.ru



Вернуться в раздел "php"
Обсудить эту статью или задать вопрос вы можете на форуме .

Пользовательского поиска


Добавить статью
 
     
  Комментарии  
 

Добавление комментария

Внимание! Пожалуйста, используйте комментарии именно для того, чтобы прокомментировать статью. Если у вас есть вопросы, то лучше задать их на нашем форуме. Здесь у вас будет больше шансов получить ответ на свой вопрос.

Только участники портала могут оставлять комментарии. Чтобы иметь возможность оставить комментарий, пожалуйста зарегистрируйтесь. Если вы уже зарегистрированы на сайте, то авторизируйтесь.
 
     
 
© http://sitehelp.ru 2006