我有Oracle Apex应用程序来上传文件。文件由P14_FILE_BROWSE项加载,存储类型设置为apex_application_temp_files。按下上传按钮后,执行以下PL / SQL代码:
declare
begin
insert into files(
ID, NAME, FILENAME, MIME_TYPE, CONTENT )
select ID, NAME, FILENAME, MIME_TYPE, BLOB_CONTENT
from apex_application_temp_files
where name = :P14_FILE_BROWSE;
end;
我已使用此表创建报告,列ID定义为URL链接p?n =#ID#。我可以通过此链接下载我的文件。它工作正常,直到我的会议到期。当会话过期文件不再可访问时(无法找到网页)。但是文件仍然存储在文件表中,如下所示:
为什么会话到期后p?n = ..无法访问我的文件?我正在使用Oracle 12c和Oracle Apex 5.1。
谢谢
答案 0 :(得分:1)
根据文件: http://docs.oracle.com/cd/E59726_01/doc.50/e39143/toc.htm#HTMRN264
" WWV_FLOW_FILES上的任何选择,更新或删除操作都应更改为使用APEX_APPLICATION_TEMP_FILES表。删除不再是必需的,因为文件将在请求后或清除会话时自动清除。"
答案 1 :(得分:0)
只是一个建议: 根据您上传的文件定义报告的链接时,请包括会话和调试ID。
示例:
'F P =&安培; APP_ID:?' || PAGE_ID || ':& SESSION。::& DEBUG。::::'
这是指向具有app_id(APP_ID)的应用程序的页面(PAGE_ID)的链接
这里, PAGE_ID是一个报告页面,此报告基于使用文件浏览器上载的文件。 当我错过了包含会话和调试ID时,我也无法在新会话中找到我的报告页面。