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

Приклад 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="http://www.ishodniki.ru/test.php> </ body>

і в тому ж каталозі розмістіть 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;
?>

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*