上传的文件存储table:FND_LOBS
---------------------------------------包头
PACKAGE CONTROL IS
PROCEDURE event(i_event VARCHAR2);
PROCEDURE upload;
END;
--------------------------------------------包体
PACKAGE BODY CONTROL IS
--上传
PROCEDURE upload IS
l_access_id number;
l_server_url varchar2(100);
l_parameters varchar2(100);
l_file_id varchar2(100);
l_gfm_id NUMBER := NULL;
button_choice NUMBER;
l_file_name VARCHAR2(300);
BEGIN
l_access_id := fnd_gfm.authorize(null);
fnd_profile.get('APPS_WEB_AGENT', l_server_url);
l_parameters :='access_id='||l_access_id||'&l_server_url='||l_server_url;
fnd_function.execute(FUNCTION_NAME =>'FND_FNDFLUPL',
OPEN_FLAG => 'Y',
SESSION_FLAG => 'Y',
OTHER_PARAMS =>l_parameters);
FND_MESSAGE.set_name('FND','ATCHMT-FILE-UPLOAD-COMPLETE');
--------------提示是否成功加载
button_choice := FND_MESSAGE.question(
button1=> 'YES',
button2=> null,
button3=> 'NO',
default_btn => 1,
cancel_btn =>3,
icon=> 'question');
IF ( button_choice = 3 ) THEN
null;
ELSIF ( button_choice = 1 ) THEN
l_gfm_id := fnd_gfm.get_file_id(l_access_id);
IF l_gfm_id IS NOT NULL THEN
select decode(instr(file_name,'/'),0,file_name,
substr(file_name,instr(file_name,'/')+1))
into l_file_name
from fnd_lobs
where file_id = l_gfm_id;
END IF;
:RZQUATPH.TEMPLATE_NAME := l_file_name;
:RZQUATPH.STAEST_TPL_HEADER_ID := fnd_gfm.get_file_id(l_access_id);
:RZQUATPH.EFFECTIVE_START_DATE := SYSDATE;
END IF;
END upload;
-----下载
PROCEDURE download IS
l_access_id number;
l_file_id varchar2(100);
l_url varchar2(2000);
l_gfm_id integer;
l_gfm_agent varchar2(100);
BEGIN
if :RZQUATPH.STAEST_TPL_HEADER_ID is not null then
go_block('RZQUATPH');
l_gfm_agent := fnd_web_config.gfm_agent;
l_gfm_id := Name_In('RZQUATPH.STAEST_TPL_HEADER_ID');--传入附件的ID
l_url := fnd_gfm.construct_download_URL(l_gfm_agent,l_gfm_id);
fnd_utilities.open_url (l_url);
l_url := null;
end if;
END download;
PROCEDURE event(i_event VARCHAR2) IS
BEGIN
IF i_event = 'WHEN-BUTTON-PRESSED' THEN
IF :SYSTEM.TRIGGER_ITEM = 'CONTROL.UPLOAD' THEN
upload;
END IF;
IF :SYSTEM.TRIGGER_ITEM = 'CONTROL.DOWNLOAD' THEN
NULL;
download;
END IF;
IF :SYSTEM.TRIGGER_ITEM = 'CONTROL.QUERY' THEN
NULL;
go_block('RZQUATPH');
execute_query;
END IF;
END IF;
END event;
END;
调用的FND_WEB_CONFIG 和 fnd_gfm 两个 包文件:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24899662/viewspace-709936/
,如需转载,请注明出处,否则将追究法律责任。