Читання-показ із файлів або завантаження-отримання з бази даних бінарних файлів (картинок)
Як за допомогою 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 цієї статті, а замість читання з файлу взяти змінну з бази даних, приблизно ось так: