Велика частина вмісту web-ресурсів сьогодні динамічно формується серверними скриптами. Але подібним чином виводиться переважно текстова інформація (розмітка сторінок, таблиці стилів, карта сайту). Зображення, музика, відео, архіви, як правило, розміщені на сервері у вигляді статичних файлів. Втім, іноді виникає необхідність формувати за допомогою сценарію і подібні дані. Так, якщо потрібно виводити статичну картинку, її цілком можна цілком вставити в скрипт.
Вам знадобиться
- - можливість створення або редагування серверних сценаріїв.
Інструкція
Вставте дані картинки в скрипт у вигляді тексту, що є частиною програмного коду. Використовуйте найбільш зручні структури даних та синтаксичні конструкції. Вибір зазвичай визначається можливостями застосовуваного мови програмування. Так, у багатьох випадках зручно вставити картинку в скрипт у вигляді звичайної рядки символів, вміст якої являє собою дані зображення, закодовані алгоритмом начебто Base64. У PHP це може виглядати наступним чином (картинка розміром 2x2 пікселя у форматі GIF): $ str = 'R0lGODlhAgACAIAAAAAAAP /// yH5BAAA'. 'AAAALAAAAAACAAIAAAIDDBAFADs =' - Також часто використовуються літерали масивів.
Підготуйте зображення до висновку. Якщо потрібно, здійсните декодування вихідної інформації. Ви повинні отримати буфер, що містить бінарні дані картинки. Приміром, на мові PHP декодування рядки, наведеною в першому кроці, може виглядати так: $ text = base64_decode ($ str) -
У заголовок HTTP-відповіді сервера додайте поле, що містить дані про довжину тіла відповіді (розмірі виведеної картинки). Обсяг визначте, використовуючи функції або методи, які повертають довжину масивів, рядків, і т.д. Наприклад: header ('Content-length:' .strlen ($ text)) -
Додайте в заголовок HTTP-відповіді сервера поле, яке вказує на mime-тип переданого вмісту. Наприклад: header ('Content-type: image / gif') - Тип вмісту повинен бути вже відомий (визначений на основі формату вихідної картинки).
Якщо необхідно форсувати збереження картинки замість її відображення браузером, додайте відповідне поле в заголовок відповіді: header ("Content-Disposition: attachment- filename = my_image.gif") -
Якщо потрібно уникнути кешування зображення браузером, введіть в HTTP-відповідь поля Pragma і cache-Control з відповідними значеннями: header ("Pragma: no-cache") - header ("Cache-Control: no-cache, must-revalidate, no- store ") - header (" Cache-Control: pre-check = 0, post-check = 0 ", false) -Також варто віддавати дати останньої модифікації і закінчення терміну дії ресурсу. При цьому друга з них повинна бути більш пізньої: header ("Expires: Mon, 4 Jan 1993 00:00:01 GMT") - header ("Last-Modified:" .gmdate ("D, d MYH: i: s" ). "GMT") -
Сформуйте тіло HTTP-відповіді сервера, що представляє собою дані картинки. Використовуйте функції або методи об'єктів, що забезпечують виведення бінарних даних без їх додаткової обробки. Наприклад: printf ("% s ', $ text) -