powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Отображению картинок из blob полей
11 сообщений из 11, страница 1 из 1
Отображению картинок из blob полей
    #36637941
Sergey_123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возник вопрос по отображению картинок в 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
Отображению картинок из blob полей
    #36638512
PITMOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так чем вам не нравиться второй вариант? Ну не хотите чтобы ваши картинки каждый мог смотреть сделайте случайные идентификаторы, по которым вы будете выводить ваше изображение, ну или какие-то символьные имена, не понимаю проблемы.
...
Рейтинг: 0 / 0
Отображению картинок из blob полей
    #36638935
Sergey_123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PITMOVТак чем вам не нравиться второй вариант? Ну не хотите чтобы ваши картинки каждый мог смотреть сделайте случайные идентификаторы, по которым вы будете выводить ваше изображение, ну или какие-то символьные имена, не понимаю проблемы.
Не нравится тем, что зная имя картинки можно её узреть. Ситуация, пользователь с правами А может смотреть картинки, а пользователь с правами Б не может. Пользователь А кидает ссылку на картинку, и пользователь Б смотрит (вариант с сохранением изображения в файл и отправка почтой не рассматривается :) ). Хотелось бы избежать такой ситуации.
Интересно проверить идею проверки контекста в функции возврата изображения (При логине вызывается функция установки контекста, а потом в функции отображения картинки проверять его, или ловить v('USER') как то. Надо будет проверить метод.
...
Рейтинг: 0 / 0
Отображению картинок из blob полей
    #36639230
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_123, форму создавать не обязательно. Но, чтобы можно было воспользоваться вызовом APEX_UTIL.GET_BLOB_FILE_SRC для получения src изображения, необходимо создать процесс Automatic Row Processing (DML) для запоминания таблицы/ключевого поля изображения. Так вот уж сделано, увы. То есть процесс нужен будет только для этого, условие его выполнения - NEVER.
...
Рейтинг: 0 / 0
Отображению картинок из blob полей
    #36639340
Sergey_123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
non-apexoidSergey_123, форму создавать не обязательно. Но, чтобы можно было воспользоваться вызовом APEX_UTIL.GET_BLOB_FILE_SRC для получения src изображения, необходимо создать процесс Automatic Row Processing (DML) для запоминания таблицы/ключевого поля изображения. Так вот уж сделано, увы. То есть процесс нужен будет только для этого, условие его выполнения - NEVER.

Ну мне пришлось создать... правда я её урезал и сделал практически бланк с неё.
Как показала практика, помимо Automatic Row Processing (DML) нужно еще создать Automated Row Fetch, иначе не работает нормально (покарйней мере у меня не работало).
...
Рейтинг: 0 / 0
Отображению картинок из blob полей
    #36639922
PITMOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Отображению картинок из blob полей
    #36641367
Sergey_123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Отображению картинок из blob полей
    #36642135
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_123, создать синоним пробовали?
...
Рейтинг: 0 / 0
Отображению картинок из blob полей
    #36642217
PITMOV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С синонимом кстати неплохая идея.
...
Рейтинг: 0 / 0
Отображению картинок из blob полей
    #36644363
Sergey_123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Отображению картинок из blob полей
    #36644559
non-apexoid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы увидеть линк, достаточно заполнить поле Source value or expression и сохранить изме
нения.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Отображению картинок из blob полей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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