Tuesday, March 3, 2020

Download Files in Oracle APEX



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

Delete Row Button to all records of Interactive Report in Oracle Apex

 1. add 'Delete' Del column to Report Query 2. Set the Following Properties for the DEL Column Type: Link Heading: Delete Targ...