Щоб видати браузеру картинку з диска сервера, треба …, Бази даних, PHP, статті

Приклад 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></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;
?>

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


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

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

Ваш отзыв

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

*

*