Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
19.05.2010, 22:35
|
|||
---|---|---|---|
|
|||
Отображению картинок из blob полей |
|||
#18+
Возник вопрос по отображению картинок в 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у нужно. Кто то подобным игрался? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.05.2010, 11:45
|
|||
---|---|---|---|
|
|||
Отображению картинок из blob полей |
|||
#18+
Так чем вам не нравиться второй вариант? Ну не хотите чтобы ваши картинки каждый мог смотреть сделайте случайные идентификаторы, по которым вы будете выводить ваше изображение, ну или какие-то символьные имена, не понимаю проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.05.2010, 13:32
|
|||
---|---|---|---|
|
|||
Отображению картинок из blob полей |
|||
#18+
PITMOVТак чем вам не нравиться второй вариант? Ну не хотите чтобы ваши картинки каждый мог смотреть сделайте случайные идентификаторы, по которым вы будете выводить ваше изображение, ну или какие-то символьные имена, не понимаю проблемы. Не нравится тем, что зная имя картинки можно её узреть. Ситуация, пользователь с правами А может смотреть картинки, а пользователь с правами Б не может. Пользователь А кидает ссылку на картинку, и пользователь Б смотрит (вариант с сохранением изображения в файл и отправка почтой не рассматривается :) ). Хотелось бы избежать такой ситуации. Интересно проверить идею проверки контекста в функции возврата изображения (При логине вызывается функция установки контекста, а потом в функции отображения картинки проверять его, или ловить v('USER') как то. Надо будет проверить метод. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.05.2010, 15:00
|
|||
---|---|---|---|
|
|||
Отображению картинок из blob полей |
|||
#18+
Sergey_123, форму создавать не обязательно. Но, чтобы можно было воспользоваться вызовом APEX_UTIL.GET_BLOB_FILE_SRC для получения src изображения, необходимо создать процесс Automatic Row Processing (DML) для запоминания таблицы/ключевого поля изображения. Так вот уж сделано, увы. То есть процесс нужен будет только для этого, условие его выполнения - NEVER. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.05.2010, 15:28
|
|||
---|---|---|---|
|
|||
Отображению картинок из blob полей |
|||
#18+
non-apexoidSergey_123, форму создавать не обязательно. Но, чтобы можно было воспользоваться вызовом APEX_UTIL.GET_BLOB_FILE_SRC для получения src изображения, необходимо создать процесс Automatic Row Processing (DML) для запоминания таблицы/ключевого поля изображения. Так вот уж сделано, увы. То есть процесс нужен будет только для этого, условие его выполнения - NEVER. Ну мне пришлось создать... правда я её урезал и сделал практически бланк с неё. Как показала практика, помимо Automatic Row Processing (DML) нужно еще создать Automated Row Fetch, иначе не работает нормально (покарйней мере у меня не работало). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.05.2010, 18:01
|
|||
---|---|---|---|
|
|||
Отображению картинок из blob полей |
|||
#18+
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_МОДУЛИ" По-моему этот вопрос уже поднимался, давно я тоже работал с этим, помню, что здесь кто-то уже рассказывал, вариант описанный выше работает на ура, если что-то непонятно, то спрашивайте, я все поясню. Здесь вариант без создания формы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.05.2010, 13:06
|
|||
---|---|---|---|
|
|||
Отображению картинок из blob полей |
|||
#18+
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
... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.05.2010, 16:55
|
|||
---|---|---|---|
|
|||
Отображению картинок из blob полей |
|||
#18+
Sergey_123, создать синоним пробовали? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.05.2010, 17:20
|
|||
---|---|---|---|
|
|||
Отображению картинок из blob полей |
|||
#18+
С синонимом кстати неплохая идея. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
24.05.2010, 00:26
|
|||
---|---|---|---|
|
|||
Отображению картинок из blob полей |
|||
#18+
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, создать синоним пробовали? Попробовал - он видит только таблицы или вьюшки. Синоним не виден, хотя в схеме есть и в отчетах отображается на ура. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=50&mobile=1&tid=1876955]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 277ms |
total: | 414ms |
0 / 0 |