#multi files upload
#Uploading button PLSQL Logic
DECLARE l_file_names APEX_T_VARCHAR2; l_file APEX_APPLICATION_TEMP_FILES%ROWTYPE; v_id NUMBER; BEGIN
l_file_names := APEX_STRING.SPLIT(p_str => :P1_FILES, p_sep => ':');
FOR i IN 1 .. l_file_names.COUNT LOOP
BEGIN
-- Retrieve the file metadata from the temporary workspace
SELECT *
INTO l_file
FROM APEX_APPLICATION_TEMP_FILES
WHERE name = l_file_names(i);
-- Generate a new ID for the custom table
SELECT NVL(MAX(ID), 0) + 1
INTO v_id
FROM tb_multi_files;
-- Insert the file into your permanent storage table
INSERT INTO tb_multi_files (
-- ID,
FILENAME,
file_mimetype,
FILE_BLOB
) VALUES (
---v_id,
l_file.FILENAME,
l_file.MIME_TYPE,
l_file.BLOB_CONTENT
);
EXCEPTION
WHEN NO_DATA_FOUND THEN
APEX_DEBUG.ERROR('File not found: ' || l_file_names(i));
WHEN OTHERS THEN
RAISE;
END;
END LOOP;
END;
#PDF view Before header process Declare l_blob blob; l_file_name varchar2(1000); l_file_mimtype varchar2(1000); Begin for i in ( select FILE_BLOB, FILENAME , FILE_MIMETYPE from TB_MULTI_FILES where id = :P2_ID ) loop l_blob := i.file_blob; l_file_name := i.filename; l_file_mimtype := i.FILE_MIMETYPE;
end loop;
owa_util.mime_header(nvl(l_file_mimtype,'application/octet'),false); owa_util.http_header_close;
wpg_docload.download_file(l_blob);
EXCEPTION WHEN OTHERS THEN APEX_ERROR.ADD_ERROR( P_MESSAGE => 'PDF / JPG not available', p_display_location => apex_error.c_inline_in_notification );
End;