Читання-показ із файлів або завантаження-отримання з бази даних бінарних файлів (картинок)

Як за допомогою PHP видати бінарний файл браузеру? Наприклад, при натисканні мишкою за посиланням asd.php у людини в браузері вантажитися картинка (саме картинка, а не HTML файл з тегом IMG) або вискакує віконце з проханням зберегти .ZIP файл.

Як завантажувати в базу даних бінарні файли (картинки, архіви або ін.) і далі брати їх у програмі PHP.

Щоб видати браузеру зображення з диска сервера, потрібно .

Створіть файл test.php і в тому ж каталозі картинку image.jpg. Текст test.php:

Після цього у браузері завантажте 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). Але це працює, тому завжди так пишіть, щоби не робити зайву роботу.

Зробіть такий файл test.html

і в тому ж каталозі розмістіть image.jpg та text.php (текст вище), завантажте його у браузері test.html. Таким чином, ви можете приховувати імена картинок, які читаєте з диска. Або брати картинку не з диска, а з бази даних про що нижче.

Під час проведення вищезгаданих тестів,подбайте про те, щоб браузер нічого не брав із кеша, інакше глюки (не побачите оновлення).

Розміщення бінарних файлів (картинок) у базі даних

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

1. створіть таблицю із полем BLOB

2. прочитайте дані, які треба помістити до бази даних, у змінну $upload. Якщо це файл (картинка) на диску, зробіть це так:

3. захистіть змінну від небезпечних символів ("просліште змінну"):

4. завантажте змінну до бази даних:

"Таблиця" - ім'я таблиці, "поле" - назва колонки в таблиці типу BLOB, створених під час виконання пункту 1. Зрозуміло, щоб виконати HTML запит треба попередньо встановити з'єднання з базою даних.

Для взяття бінарного файлу з бази даних у браузері треба.

Ви сміятиметеся, але нічого особливого не треба. Просто прочитайте її як просту змінну з бази даних. У змінну мовою ПХП можна пхати все, що треба. Щоправда, є ліміт пам'яті (будьте уважні зі змінними від 2 МБ), про який треба пам'ятати. Зрозуміло, ліміт збільшити, але це тема цієї статті.

Щоб показати картинку із бази даних, треба.

Освоїти приклад 1 цієї статті, а замість читання з файлу взяти змінну з бази даних, приблизно ось так: