Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Отображению картинок из blob полей / 11 сообщений из 11, страница 1 из 1
19.05.2010, 22:35
    #36637941
Sergey_123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображению картинок из blob полей
Возник вопрос по отображению картинок в Apex 3.1.2, причем картинок содержащихся в блоб полях базы а не просто картинок на сервер с апачем.
Посмотрев более детально, в том числе и тут , я понял, что есть 2 способа отображения:
1. Это создание страницы в приложении типа Form -> Form on a Table or View, где указав схему и объект необходимый мне поля на страницы, пописавший все необходимое как на странице 6 (Add/Modify Products) демонстрационного приложения я получаю свою картинку. Пример .
2. Второй вариант как написано у Denes Kubicek , при этом не забыв отредактировать apex_030200.wwv_flow_epg_include_mod_local и внести туда название своей схемы+пакета+функции, выдавший соответствующие гранты схеме APEX_PUBLIC_USER (это что бы не делать паблик синонимов).
А теперь вопросы:
1. Обязательно ли создавать страницу типа Form -> Form on a Table or View или это можно как то обойти (не принципиально)? Например сделать тоже самое на странице типа бланк не удалось :( Кто то пробовал?
Проблема в том, что представление (view) где есть собственно данные и блоб поле с картинкой находится не в Parsing Schema приложения. Парсинг схеме выдан грант на это представление. Причем при таком способе работы изображение не отображается (нет ошибок просто как будто блоб пустой). Обязательно ли объект должен находится в парсинг схеме, что бы можно было отображать из него картинку? Потому как создавая представление в парсинг схеме (при выдаче необходимых грантов) у меня получилось отобразить изображение.
2. Второй способ какой то стремный – правится процедура, от которой зависит еще одна, причем любой встречный поперечный введя ссылку и перебором ид сможет просмотреть все картинки. Плюс давать гранты APEX_PUBLIC_USERу нужно.
Кто то подобным игрался?
...
Рейтинг: 0 / 0
20.05.2010, 11:45
    #36638512
PITMOV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображению картинок из blob полей
Так чем вам не нравиться второй вариант? Ну не хотите чтобы ваши картинки каждый мог смотреть сделайте случайные идентификаторы, по которым вы будете выводить ваше изображение, ну или какие-то символьные имена, не понимаю проблемы.
...
Рейтинг: 0 / 0
20.05.2010, 13:32
    #36638935
Sergey_123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображению картинок из blob полей
PITMOVТак чем вам не нравиться второй вариант? Ну не хотите чтобы ваши картинки каждый мог смотреть сделайте случайные идентификаторы, по которым вы будете выводить ваше изображение, ну или какие-то символьные имена, не понимаю проблемы.
Не нравится тем, что зная имя картинки можно её узреть. Ситуация, пользователь с правами А может смотреть картинки, а пользователь с правами Б не может. Пользователь А кидает ссылку на картинку, и пользователь Б смотрит (вариант с сохранением изображения в файл и отправка почтой не рассматривается :) ). Хотелось бы избежать такой ситуации.
Интересно проверить идею проверки контекста в функции возврата изображения (При логине вызывается функция установки контекста, а потом в функции отображения картинки проверять его, или ловить v('USER') как то. Надо будет проверить метод.
...
Рейтинг: 0 / 0
20.05.2010, 15:00
    #36639230
non-apexoid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображению картинок из blob полей
Sergey_123, форму создавать не обязательно. Но, чтобы можно было воспользоваться вызовом APEX_UTIL.GET_BLOB_FILE_SRC для получения src изображения, необходимо создать процесс Automatic Row Processing (DML) для запоминания таблицы/ключевого поля изображения. Так вот уж сделано, увы. То есть процесс нужен будет только для этого, условие его выполнения - NEVER.
...
Рейтинг: 0 / 0
20.05.2010, 15:28
    #36639340
Sergey_123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображению картинок из blob полей
non-apexoidSergey_123, форму создавать не обязательно. Но, чтобы можно было воспользоваться вызовом APEX_UTIL.GET_BLOB_FILE_SRC для получения src изображения, необходимо создать процесс Automatic Row Processing (DML) для запоминания таблицы/ключевого поля изображения. Так вот уж сделано, увы. То есть процесс нужен будет только для этого, условие его выполнения - NEVER.

Ну мне пришлось создать... правда я её урезал и сделал практически бланк с неё.
Как показала практика, помимо Automatic Row Processing (DML) нужно еще создать Automated Row Fetch, иначе не работает нормально (покарйней мере у меня не работало).
...
Рейтинг: 0 / 0
20.05.2010, 18:01
    #36639922
PITMOV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображению картинок из blob полей
select "ИД",
"НАЗВАНИЕ_МОДУЛЯ",
"КР_ТЕКСТ",
decode(nvl(dbms_lob.getlength("PHOTO"),0),0,null,'<img src="'||apex_util.get_blob_file_src('P21_PHOTO',ИД)
||'" height="75" width="75" />') Фотография
from "#OWNER#"."APEX_МОДУЛИ"

По-моему этот вопрос уже поднимался, давно я тоже работал с этим, помню, что здесь кто-то уже рассказывал, вариант описанный выше работает на ура, если что-то непонятно, то спрашивайте, я все поясню. Здесь вариант без создания формы.
...
Рейтинг: 0 / 0
21.05.2010, 13:06
    #36641367
Sergey_123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображению картинок из blob полей
PITMOVselect "ИД",
"НАЗВАНИЕ_МОДУЛЯ",
"КР_ТЕКСТ",
decode(nvl(dbms_lob.getlength("PHOTO"),0),0,null,'<img src="'||apex_util.get_blob_file_src('P21_PHOTO',ИД)
||'" height="75" width="75" />') Фотография
from "#OWNER#"."APEX_МОДУЛИ"

По-моему этот вопрос уже поднимался, давно я тоже работал с этим, помню, что здесь кто-то уже рассказывал, вариант описанный выше работает на ура, если что-то непонятно, то спрашивайте, я все поясню. Здесь вариант без создания формы.

Объект, а именно view откуда берется картинка, обязательно ли должна быть в парсинг схеме приложения, или есть есть способ через гранты достать её откуда угодно?
Пример: есть схема приложения APP_SCHEMA, в ней есть вью PersPhoto которая содержит, ид, имя, блоб (в блобе картинка).
Есть Parsing Schema с название PARSING_SCHEMA , которой дан грант на селект по вью APP_SCHEMA.PersPhoto .
Так вот при таком способе картинка почему то не отображается :( , хоть все данные из этой вью видно.
А вот если сделать так
Код: plaintext
create or replace view PARSING_SCHEMA.PersPhoto as select <поля> from APP_SCHEMA.<Таблица с данными>;
То все видно и все работает. К сожалению мне это вариант не подходит.
...
Рейтинг: 0 / 0
21.05.2010, 16:55
    #36642135
non-apexoid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображению картинок из blob полей
Sergey_123, создать синоним пробовали?
...
Рейтинг: 0 / 0
21.05.2010, 17:20
    #36642217
PITMOV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображению картинок из blob полей
С синонимом кстати неплохая идея.
...
Рейтинг: 0 / 0
24.05.2010, 00:26
    #36644363
Sergey_123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображению картинок из blob полей
non-apexoid Sergey_123, форму создавать не обязательно. Но, чтобы можно было воспользоваться вызовом APEX_UTIL.GET_BLOB_FILE_SRC для получения src изображения, необходимо создать процесс Automatic Row Processing (DML) для запоминания таблицы/ключевого поля изображения. Так вот уж сделано, увы. То есть процесс нужен будет только для этого, условие его выполнения - NEVER.
Все таки нужно создавать страницу "Form" -> "Form on a Table or View", так как дальше есть шаг под название "Select the columns to include on the form." и там перечень полей таблицы. И вот там если есть блоб, то оно создаст итем "File Browse" где в этом итеме, в разделе Source будет линк "BLOB Download Format Mask". Если создавать форму вручную, у меня никак не получалось заставить "File Browse" отобразить этот линк, пожет кто знает как?
non-apexoidSergey_123, создать синоним пробовали?
Попробовал - он видит только таблицы или вьюшки. Синоним не виден, хотя в схеме есть и в отчетах отображается на ура.
...
Рейтинг: 0 / 0
24.05.2010, 09:01
    #36644559
non-apexoid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображению картинок из blob полей
Чтобы увидеть линк, достаточно заполнить поле Source value or expression и сохранить изме
нения.
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Отображению картинок из blob полей / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]