powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / APEX: File Browse
25 сообщений из 49, страница 1 из 2
APEX: File Browse
    #35509093
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Page Item
Display As: File Browse

Есть пример с Source Type: Database Column
Все понятно JPG_BLOB:JPG_MIMETYPE:JPG_FILENAME:JPG_LAST_UPDATE

а вот как использовать например другие типы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
* Always Null - the value will be set to null.
* Static Assignment (value equals source attribute) - The value will be set to the contents of the Source value or expression field.
* SQL Query - Set the value to the results of executing the SQL query in the Source value or expression field.
* Item (application or page item name) - Set the value to the results of the query in the Source value or expression field.
* PL/SQL Expression or Function - Set the value to the results of executing the PL/SQL expression or function reference in the Source value or expression field.
* PL/SQL Function Body - Set the value to the results of executing the PL/SQL function body in the Source value or expression field.
* Preference - Set the value to the value of the preference item named in the Source value or expression field.
* PL/SQL Anonymous Block - Set the value to the results of executing the PL/SQL anonymous block in the Source value or expression field.

не совсем доходит, т.е. задача

Имеем страницу на ней элемент Page Item, Display As: File Browse,
необходимо с помощью процедуры
P_IMG_UPDATE(
id, -- in
JPG_BLOB, -- in
JPG_MIMETYPE, -- in
JPG_FILENAME, -- in
JPG_LAST_UPDATE -- in
); которая срабатывает на нажатие кнопки, Обновить данные в базе

Вопрос(ы):
1. Какой Source Type в Item выбрать и что ввести в Source value (не используя Database Column)?
2. Как передать параметры из Item-а в P_IMG_UPDATE?
...
Рейтинг: 0 / 0
APEX: File Browse
    #35509859
apex users guide
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Source Type -Static Assignment, Source value - ничего
2. После Submit в Item будет значение WWV_FLOW_FILES.NAME для загруженного файла. Это значение уникально. По нему можно получить строку в которой все данные по файлу. Как передать в процедуру- думаю сами сможете придумать.
...
Рейтинг: 0 / 0
APEX: File Browse
    #35516466
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну в принципе, что то получилось

т.е. сделал
Page Item
Display As: File Browse (Р1_FB)

Добавил
Button: Сохранить (Submit)

+ добавил Computations (Item on This Page) с параметрами
Item Name: Р1_FB
Computation Point: After Submit
Computation:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
declare
sFILENAME varchar2( 255 );
bBLOB blob;
sMimetype varchar2( 255 );
begin

SELECT t.FILENAME, t.BLOB_CONTENT, t.MIME_TYPE
INTO sFILENAME, bBLOB, sMimetype
FROM WWV_FLOW_FILES t
where t.ID = (select max(ID)
              from WWV_FLOW_FILES);

P_IMG_U(
ID, -- id row
bBLOB,
sMimetype,
sFILENAME
);

end;

Вреде все сработало, но смутил момент
Код: plaintext
1.
2.
3.
...
where t.ID = (select max(ID)
              from WWV_FLOW_FILES)
...
какое-то чувство, что ID необходимо найти как-то по-другому!?!?!? - Это вопрос :)
...
Рейтинг: 0 / 0
APEX: File Browse
    #35517946
apex_users_guide
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Внимательно перечитайте пункт:

автор2. После Submit в Item будет значение WWV_FLOW_FILES.NAME для загруженного файла. Это значение уникально. По нему можно получить строку в которой все данные по файлу. Как передать в процедуру- думаю сами сможете придумать.

В нём указан уникальный атрибут, по которому можно определить загруженный файл.
У вас сработало, так как использовалось в однопользовательском режиме.
Почему использовали Computation? Обычно он для вычисления полей используется.
...
Рейтинг: 0 / 0
APEX: File Browse
    #35518595
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Действительно, необходимо читать внимательнее
Код: plaintext
1.
2.
...
where t.NAME = :Р1_FB
...

2. А вместо Computation, уже понял, что не прав и использую Processes

Огромное Вам спасибо!

и еще маленький вопрос(ы):
1. если вся необходимая информация о BLOBe хранится в flows_files.wwv_flow_file_objects$, то тогда зачем, делать доп.поля в своих таблицах, такие например как MIMETYPE, FILENAME и т.д. (как указано в примере), когда на много проще добавить одно поле что то типа WWV_FLOW_FILES_NAME?
2. flows_files.wwv_flow_file_objects$ - вообще когда нибудь очищается, или все время идет заполнение, это я к первому вопросу веду, т.е. получится ли использовать одно свое поле WWV_FLOW_FILES_NAME в своей таблице?
...
Рейтинг: 0 / 0
APEX: File Browse
    #35521441
apex users guide
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не уверен на 100%, но на сколько я понимаю, она не очищается автоматически.
Использовать её или нет дело ваше. Но туда складываются абсолютно все файлы загруженные через Apex.
...
Рейтинг: 0 / 0
APEX: File Browse
    #35563455
6opuc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, здравствуйте.

Познавательный пост, файлы я загружать научился.
Правда, я так и не понял как с помощью WWV_FLOW_FILE_OBJECTS$ не ошибиться в выборе нужного файла.
В случае одновременной работы с приложением условия на соответствие имени файла или максимального ключа могут быть недостаточными, а привязки к (например) сессии я не нашел.
Кто-нибудь решал эту проблему?
...
Рейтинг: 0 / 0
APEX: File Browse
    #35563700
Пилот Пиркс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 - селект делай из apex_application_files where name = "FXXXX/filename/".
2 - Строка в итеме "File Browse" будет уникальной в формате "FXXXX/filename/". ХХХХ как я понимаю заполняется из сиквенса, так что при многопользовательской работе проблем быть не должно.
...
Рейтинг: 0 / 0
APEX: File Browse
    #35612049
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что то не совсем красиво с этим
Код: plaintext
flows_files.wwv_flow_file_objects$
получается, т.е. добавляю в базу файл с помощью процедуры, в процедура смотрит тип и размер, если тип или размер не соответствует то в мою таблицу естественно ничего не добавляется, но в
Код: plaintext
flows_files.wwv_flow_file_objects$
добавлет с лету,

т.е. получается, пазу раздуть 5 сек., а именно выберет пользователь какой нибудь avi на несколько гигов и хана :)

Кто нибудь что нибудь подскажет, как это победить?
...
Рейтинг: 0 / 0
APEX: File Browse
    #35630956
DIGITALPRO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Актуально!
...
Рейтинг: 0 / 0
APEX: File Browse
    #35646828
moshkin_p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вытянуть flows_files.wwv_flow_file_objects$ в не расширяемое табличное пространство
сопоставимого с задачами размера и не хранить в ней ничего,
а использовать только по прямому назначению - кеш

IMHO:другого нам оракал не оставил

вообщето в HTTP.REQUEST есть размер аттачмента - но его и подделать можно :(
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
APEX: File Browse
    #36523233
metis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри за ап старой темы :-)) ..

Айтем компонент типа File Browse вызывает диалоговое окно выбора файла. Как в диалоговом окне прошить типы файлов? фильтры то бишь....
...
Рейтинг: 0 / 0
APEX: File Browse
    #36523371
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
metisСорри за ап старой темы :-)) ..

Айтем компонент типа File Browse вызывает диалоговое окно выбора файла. Как в диалоговом окне прошить типы файлов? фильтры то бишь....

Поскольку компонент типа File Browse - это <input type="file">, то никак. Вопрос "как добавить фильтр к диалогу выбора файла" мучает Сеть уже давно, но пока ни один из основных браузеров не поддерживает <input type="file" accept= "image/jpg">, единственное решение - проверять выбранный файл уже после выбора в JS и кидать исключение, если файл не такой.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
APEX: File Browse
    #37804538
SimbaRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Товарищи, приведите, пожалуйста, пример работы с данным компонентом.

APEX4.1
Имеется чекбокс :P_CHB (активирует/деактивирует :P_FB).
Имеется основной процесс, который также обрабатывает данные из загружаемого файла при #P_CHB:checked.
Действие по сабмиту.

Неважно, активирован или деактивирован компонент :P_FB, происходит загрузка в wwv_flow_files.
После сабмита "белый лист".

Как корректно можно решить данную задачу?
...
Рейтинг: 0 / 0
APEX: File Browse
    #37826638
SimbaRu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может знает кто. Есть ли стандартная apex функция для удаления определённых файлов из таблицы wwv_flow_files?
Нет прав для обычного удаления записей.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
APEX: File Browse
    #38815519
Oleg3412
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер. Вопрос про тип файла в Apex 4.2.

При загрузке файла c расширением xls система называет его другим именем без расширения.

Как можно оставить оригинальное название файла с его расширением, чтобы позже у другого пользователя при открытии подключалось соответствующее приложение?
...
Рейтинг: 0 / 0
APEX: File Browse
    #38815549
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg3412При загрузке файла c расширением xls система называет его другим именем без расширения.
В секции Settings при редактировании поля типа File Browse... есть все необходимые настройки. В том числе и столбец в таблице, в котором будет храниться имя файла.
...
Рейтинг: 0 / 0
APEX: File Browse
    #38815621
Oleg3412
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
APEX: File Browse
    #39113075
Turingvetil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня!

Я новичок в Апексе, пытаюсь повторить знаменитый пример: http://avdeo.com/2008/05/21/uploading-excel-sheet-using-oracle-application-express-apex/

Создаю айтемы P1_UPLOAD (File Browse со стандартными настройками) и Upload (кнопка со стандартными настройками) и бранч After Submit - Go to Page 1 - When button pressed Upload. Запускаю, выбираю csv файл, нажимаю Upload, смотрю в базу - записей нет ни в wwv_flow_files, ни в apex_application_temp_files. Apex 5-ой версии. Подскажите, в чем может быть ошибка?
...
Рейтинг: 0 / 0
APEX: File Browse
    #39113116
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Turingvetil,
Кнопка Debug - вкл. и смотреть
...
Рейтинг: 0 / 0
APEX: File Browse
    #39113159
heavyside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Turingvetil,

Важно в какой момент и где вы смотрите. В 5-м апексе изменили хранение файлов. Появилась настройка "Purge File at" в конце сессии или же в конце реквеста. Наверно у вас в конце реквеста. Попробуйте в процессе на реквест перекинуть файл в какую-нибудь свою таблицу.
...
Рейтинг: 0 / 0
APEX: File Browse
    #39113168
Turingvetil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, спасибо большое! Теперь хорошо бы еще в нем разобраться :) Похоже, всё нормально выполняется?

R E Q U E S T accept Upload
Metadata: Fetch application definition and shortcuts
NLS: wwv_flow.g_flow_language_derived_from=FLOW_PRIMARY_LANGUAGE: wwv_flow.g_browser_language=ru
alter session set nls_language='RUSSIAN' nls_territory='RUSSIA'
NLS: CSV charset=CL8MSWIN1251
...NLS: Set Decimal separator=","
...NLS: Set NLS Group separator=" "
...NLS: Set g_nls_date_format="DD.MM.RR"
...NLS: Set g_nls_timestamp_format="DD.MM.RR HH24:MI:SSXFF"
...NLS: Set g_nls_timestamp_tz_format="DD.MM.RR HH24:MI:SSXFF TZR"
Setting NLS_DATE_FORMAT to application date format: DD.MM.YYYY
Setting NLS_TIMESTAMP_FORMAT to application timestamp format: HH24:MI:SS
...NLS: Set g_nls_date_format="DD.MM.YYYY"
...NLS: Set g_nls_timestamp_format="HH24:MI:SS"
...NLS: Set g_nls_timestamp_tz_format="DD.MM.RR HH24:MI:SSXFF TZR"
...metadata, fetch translated app info
Authentication check: Application Express Authentication (NATIVE_APEX_ACCOUNTS)
...fetch session state from database
fetch items (exact)
... sentry+verification success
...Session ID 13351947832929 can be used
...Setting session time_zone to +03:00
Setting NLS_DATE_FORMAT to application date format: DD.MM.YYYY
Setting NLS_TIMESTAMP_FORMAT to application timestamp format: HH24:MI:SS
...NLS: Set g_nls_date_format="DD.MM.YYYY"
...NLS: Set g_nls_timestamp_format="HH24:MI:SS"
...NLS: Set g_nls_timestamp_tz_format="DD.MM.RR HH24:MI:SSXFF TZR"
...Check for session expiration:
...Metadata: Fetch Page, Computation, Process, and Branch
...Validate item page affinity.
... Compute item values
...Validate protected items.
...Check authorization security schemes
Session State: Save form items and p_arg_values
...Session State: Saved Item "P1_UPLOAD" New Value="F1164774099/int_id.csv"
Processes - point: ON_SUBMIT_BEFORE_COMPUTATION
Branch point: Before Computation
...Evaluating Branch: "Go To Page 1" Type: REDIRECT_URL Button: 8206900341946616 Condition: (Unconditional)
Stop APEX Engine detected
Final commit
...
Рейтинг: 0 / 0
APEX: File Browse
    #39113172
Turingvetil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
heavyside, нет, настроено на конец сессии.
...
Рейтинг: 0 / 0
APEX: File Browse
    #39113212
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Turingvetil,
- Ctrl+F поиск на "ORA-" и т.д. и т.п.
- вставьте в свой код
Код: sql
1.
APEX_DEBUG_MESSAGE.LOG_MESSAGE('-------------------------->', TRUE, 1);


и отлаживайте код просматривая в логах
...
Рейтинг: 0 / 0
APEX: File Browse
    #39113224
heavyside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Turingvetil,

Так, в какой момент разобрались) Теперь важно узнать где смотрите) Т.к. вьюха фильтрует по сессии и воркспейсу.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create or replace view apex_050000.wwv_flow_temp_files as
select id,
         flow_id            application_id,
         name,
         filename,
         mime_type,
         created_on,
         blob_content
    from wwv_flow_current_sgid sgid,
         wwv_flow_file_objects$ a
   where a.security_group_id = sgid.security_group_id
     and session_id        = ( select nv('SESSION') from sys.dual )
with check option;


Соответственно чтобы просматривать из девелопера вам надо установить сессию и security_group_id. Чтобы просматривать из SQL Commads надо установить сессию. Не стоит этим заниматься для такой задачи. Ещё раз предлагаю: Создайте After Submit процесс на этот реквест и там пропишите копирование из apex_application_temp_files в свою табличку. Например из одного blob поля.
...
Рейтинг: 0 / 0
25 сообщений из 49, страница 1 из 2
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / APEX: File Browse
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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