CREATE TABLE ATTACHEMENTS
(
ID NUMBER,
ILE_NAME VARCHAR2 (400),
FILE_TYPE VARCHAR2 (400),
FILE_SIZE VARCHAR2 (400),
FILE_CONTENT BLOB
);
Create a Apex Page with Region - PL/SQL Dynamic Content
DECLARE
v_mime VARCHAR2 (200) := NULL;
v_lob_length NUMBER := 0;
v_file VARCHAR2 (100) := NULL;
v_blobref BLOB;
BEGIN
SELECT T.FILE_NAME FILE_NAME,
T.FILE_TYPE FILE_TYPE,
DBMS_LOB.GETLENGTH (T.FILE_CONTENT) AS FILE_LENGTH,
T.FILE_CONTENT
INTO v_file,
v_mime,
v_lob_length,
v_blobref
FROM << ATTACHMENTS>> T
WHERE FILE_ID = 123;
sys.HTP.init;
sys.OWA_UTIL.mime_header (NVL (v_mime, 'application/octet'),
FALSE,
'UTF-8');
sys.HTP.p ('Content-length: ' || v_lob_length);
sys.HTP.p (
'Content-Disposition: attachement; filename="' || v_file || '"');
sys.OWA_UTIL.http_header_close;
sys.WPG_DOCLOAD.download_file (v_blobref);
APEX_APPLICATION.stop_apex_engine;
EXCEPTION
WHEN OTHERS
THEN
sys.HTP.prn ('error: ' || SQLERRM);
APEX_APPLICATION.stop_apex_engine;
END;
No comments:
Post a Comment