Ekaterina B. Egorkina,©2012 1 VEELTECH.RU Загрузка и вывод изображений Каким образом можно сохранить картинку в БД, а потом отобразить ее на странице?

Презентация:



Advertisements
Похожие презентации
Ekaterina B. Egorkina,© VEELTECH.RU Построение страницы с интерактивным отчетом Простейшая страница с отображением данных в табличном виде. Построение.
Advertisements

Ekaterina B. Egorkina,© VEELTECH.RU Построение страницы с интерактивным отчетом Простейшая страница с отображением данных в табличном виде. Построение.
Урок 3. Формы представления данных (таблицы, формы, запросы, отчеты)
Интернет- технологии МИИГаИК. Указание XML-документов в ориентире на будущее
ДАЛЕЕ БАЗА ДАННЫХ ACCESS Проектирование базы данных Создание базы данных Создание базы данных без помощи мастера Таблицы Создание таблицы в режиме конструктора.
Выполнение запросов, создание и редактирование отчета MS Access.
Основные возможности MS ACCESS. CУБД Access - Представляет из себя программное средство, при помощи которого можно создать многотабличную реляционную.
ТАБЛИЦЫ База данных может включать множество таблиц, в которых хранятся данные по различным темам. Каждая таблица может состоять из множества полей различного.
Работа с таблицами в MS Access. Таблицы Единицей хранящейся в БД информации является таблица. Таблица представляет собой совокупность строк и столбцов,
Разработка и использование интерактивных форм Общие положения. Общие положения. Современные браузеры позволяют пользователю, заполнив специальную форму,
Зачетная работа по теме « Основы баз данных » Выполнила ученица 11-А класса Серегина Ольга.
ГБОУ СОШ 840. базы данных (БД), систем управления базами данных (СУБД). В современной деловой жизни мы часто сталкиваемся с огромными объемами информации,
Внешне форма выглядит, как анкета, в которую посетитель может вписать свой текст или отметить выбранные значения из предлагаемого перечня. Форма выделяется.
Интеграция Microsoft Access 2003 с приложениями MS Office.
Что такое база данных ? База данных – это совокупность хранящихся взаимосвязанных данных, организованных по определенным правилам Приведите примеры баз.
Что такое связи между таблицами В реляционной базе данных связи позволяют избежать избыточности данных. Например, в ходе создания базы данных, содержащей.
Хранение таблиц По строкам По столбцам Строки нескольких таблиц группируются по общему атрибуту.
Подготовила: студентка группы Б-21 Пантелеева Юлия Проверил: Корюков И.В г.
Транксрипт:

Ekaterina B. Egorkina,© VEELTECH.RU Загрузка и вывод изображений Каким образом можно сохранить картинку в БД, а потом отобразить ее на странице? Задача: добавить возможность хранения и отображения фотографий сотрудников. Фотография должна появляться на странице редактирования данных сотрудника и в общем списке для каждого сотрудника.

Ekaterina B. Egorkina,© VEELTECH.RU Начнем со страницы редактирования данных сотрудника. Здесь появляется элемент, который позволяет выбрать файл с изображением и сохраняет выбранное изображение в БД. Элемент для загрузки изображения

Ekaterina B. Egorkina,© VEELTECH.RU Кнопка «Обзор» вызывает диалоговое окно выбора файла.

Ekaterina B. Egorkina,© VEELTECH.RU После выбора изображения, имя файла с полным адресом появляется в диалоговом элементе «Загрузка фотографии». Чтобы информация попала в БД, остается нажать «Сохранить».

Ekaterina B. Egorkina,© VEELTECH.RU

Ekaterina B. Egorkina,© VEELTECH.RU При повторном открытии карточки личных данных, появляется изображение, сохраненное в БД.

Ekaterina B. Egorkina,© VEELTECH.RU alter table EMPLOYEES add ( PHOTO blob null ); Для загрузки фотографии в БД нужно подготовить место. Бинарная информация такого рода хранится в объектах типа BLOB. Следовательно, добавим в таблицу сотрудников (EMPLOYEES) новое поле PHOTO.

Ekaterina B. Egorkina,© VEELTECH.RU Перед началом работы над добавлением в приложение APEX возможности работы с фотографиями сотрудников, необходимо создать связанную пару страниц с отчетом, где формируется полный список сотрудников, и связанной с ним формой для редактирования каждой записи. Элементы Report and Form.

Ekaterina B. Egorkina,© VEELTECH.RU

Ekaterina B. Egorkina,© VEELTECH.RU

Ekaterina B. Egorkina,© VEELTECH.RU Пометим элемент как «Загрузка фотографии»

Ekaterina B. Egorkina,© VEELTECH.RU Т.к. предполагается хранить фотографии в таблице EMPLOYEES, то тип хранения должен быть задан как BLOB column specified in Item Source attribute Параметр размещения содержимого имеет 2 варианта: 1. Inline – отображение информации непосредственно на странице (возможность зависит от настроек браузера и поддерживаемых форматов) 2. Attachment – отображение ссылки для загрузки содержимого

Ekaterina B. Egorkina,© VEELTECH.RU Это те самые атрибуты источника информации (Item Source attribute). Тип источника (Source Type) – поле таблицы (Database Column). Имя поля (Database Column Name) – созданное поле PHOTO таблицы EMPLOYEES. Важно! Параметр времени использования (Source Used) должен быть установлен в значение «Всегда» (Always).

Ekaterina B. Egorkina,© VEELTECH.RU Т.к. вариант отображения Inline для объекта File Browse доступен не всегда, сделаем отдельное отображение картинки через элемент Display Image.

Ekaterina B. Egorkina,© VEELTECH.RU Последовательность размещения данного элемента несколько иная, чем обычно. Чтобы расположить картинку справа от остальных элементов, ее необходимо поместить во вторую колонку первой строки невидимой таблицы, с помощью которой форматируется вывод объектов в регионе. Поэтому, элемент должен следовать между первым и вторым элементом, которые уже присутствуют на странице. Это соответствует любому значению от 11 до й элемент Создаваемый элемент 2-й элемент 3-й элемент …

Ekaterina B. Egorkina,© VEELTECH.RU Элемент не располагается на новой строке, т.к. будет размещаться во 2-й колонке первой строки.

Ekaterina B. Egorkina,© VEELTECH.RU Способ хранения информации аналогичен предыдущему элементу.

Ekaterina B. Egorkina,© VEELTECH.RU Параметры источника информации аналогичны предыдущему элементу.

Ekaterina B. Egorkina,© VEELTECH.RU

Ekaterina B. Egorkina,© VEELTECH.RU

Ekaterina B. Egorkina,© VEELTECH.RU Т.к. картинка имеет высоту большую, чем обычные однострочные элементы, то, во избежание растяжения первой строки на высоту картинки, объединим все ячейки 2-й колонки форматирующей таблицы. 1-й элемент Элемент Display Image 2-й элемент 3-й элемент …

Ekaterina B. Egorkina,© VEELTECH.RU Для отображения данных, хранящихся в поле BLOB в виде изображения, недостаточно добавить выбор соответствующего поля в запрос SELECT. В обычном отчете (report) с запросом select employee_id, last_name, photo from employees для поля PHOTO будет сформирована ссылка, по которой можно загрузить соответствующее содержимое Чтобы вместо ссылки добавить изображение, для этого поля необходимо вручную определить HTML-код тега.

Ekaterina B. Egorkina,© VEELTECH.RU Формируемый запросом тэг будет иметь следующий вид: Главная задача – получить адрес, по которому через протокол http можно получить изображение. Сформировать адрес позволяет функция APEX_UTIL.get_blob_file_src

Ekaterina B. Egorkina,© VEELTECH.RU Синтаксис: APEX_UTIL.get_blob_file_src( p_item_name in varchar2 default null, p_v1 in varchar2 default null, p_v2 in varchar2 default null, p_content_disposition in varchar2 default null) return varchar2; p_item_name – элемент типа FILE на заданной странице, связанный с источником значений для поля BLOB в БД p_v1 – значение первичного ключа данной записи p_v2 – значение второго поля, входящего в первичный ключ (для составного ключа) p_content_disposition – inline или attachment

Ekaterina B. Egorkina,© VEELTECH.RU 1. Необходим элемент, являющийся источником данных поля BLOB, где хранится изображение. Это элемент типа File Browse, где источник (Source) задан как Source type: Database Column Source value: PHOTO (поле BLOB,где хранится фото) 2. Необходим элемент, где будет задано значение идентификатора записи. Это элемент типа Hidden, где источник (Source) задан как Source type: Database Column Source value: EMPLOYEE_ID (первичный ключ таблицы)

Ekaterina B. Egorkina,© VEELTECH.RU

Ekaterina B. Egorkina,© VEELTECH.RU Чтобы сделать невидимым все, что содержится в регионе, в параметрах Header and Footer – заголовок и окончание региона – пропишем специальный html-блок span, скрытый с помощью стилей CSS.

Ekaterina B. Egorkina,© VEELTECH.RU Отображение региона без шаблона. В этом случае никаких элементов оформления – рамка, заголовок и т.д. не добавляется.

Ekaterina B. Egorkina,© VEELTECH.RU

Ekaterina B. Egorkina,© VEELTECH.RU Аналогичны создававшемуся ранее элементу File Browse для формы редактирования.

Ekaterina B. Egorkina,© VEELTECH.RU

Ekaterina B. Egorkina,© VEELTECH.RU Чтобы в созданных объектах (File Browse и Hidden) появлялись данные из таблицы, необходимо создать для них «источник информации». Таким источником является специальный процесс (Process), выполняющий автоматическое считывание записей (Automated Row Fetch) указанной таблицы по заданному описанию.

Ekaterina B. Egorkina,© VEELTECH.RU

Ekaterina B. Egorkina,© VEELTECH.RU

Ekaterina B. Egorkina,© VEELTECH.RU

Ekaterina B. Egorkina,© VEELTECH.RU

Ekaterina B. Egorkina,© VEELTECH.RU

Ekaterina B. Egorkina,© VEELTECH.RU

Ekaterina B. Egorkina,© VEELTECH.RU SELECT …, decode( nvl(dbms_lob.getlength(PHOTO),0),0,null, '<img style="border: 1px solid #CCC;" '|| 'src="'|| apex_util.get_blob_file_src('P2_PHOTO',employee_id)|| '" height="45" width="45" alt="Photo" title="Photo" />' ) as PHOTO FROM EMPLOYEES

Ekaterina B. Egorkina,© VEELTECH.RU

Ekaterina B. Egorkina,© VEELTECH.RU

Ekaterina B. Egorkina,© VEELTECH.RU