Here is how you can show images from server folder: This is just example and assume you create new app. I also assume your XE database is in windows machine. Connect to SQL plus as SYS and create directory:
create directory my_img_dir as 'c:\my_images\';
Grant read privilege on directory to DAD user (ANONYMOUS):
grant read on directory my_img_dir to anonymous;
Grant read privilege on directory to your application parsing schema. Change "my_schema" to your own schema:
grant read on directory my_img_dir to my_schema;
Create new app and 2 blank pages. I assume first page (id 1) is where you show images. Second page (id 2) is just for call application process. Create application process point "On Load:Before Header"
l_lob := BFILENAME('MY_IMG_DIR', :REQUEST);
l_length := DBMS_LOB.getlength(l_lob);
htp.p('Content-length: ' || l_length);
htp.p('Content-Disposition: inline; filename="&REQUEST."');
-- close the headers
-- download the BLOB
Make process conditional if page is 2. Create HTML region to page 1 and place to region source:
<img src="f?p=&APP_ID.:2:&APP_SESSION.:my_picture.gif" alt="" />
Replace "my_picture.gif" with real image name you have in folder c:\my_images. Image name is case sensitive PS: In above instructions replace c:\my_images\ with e.g. /var/my_images in Linux. Make sure "others" have read permission to folder and image files in it. Folder owner and group can be e.g. root.
Original article in Oracle APEX forum.