Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Downloading blob will save the file by the procedure name and not the actual file name
Hi,
I am using PL/SQL web toolkit to open documents in a browser. The documents are stored as BLOB data types. I am using the below procedure "viewer.sql" to open the documents based on the mime types.
My question: When I try to save the opened document, I see that the file
name is
that of the procedure name in the URL and not the actual filename.
I have the filename stored in the database. Is there a way to change the filename?
Actual code....
CREATE OR REPLACE PROCEDURE VIEWER (DOC_LOC IN NUMBER,D_ID IN NUMBER) AS
V_file_ext VARCHAR2(5)
V_blob BLOB;
buffer raw(32767);
buffer_size integer := 32767;
offset integer := 1;
length number;
BEGIN THEN
BEGIN SELECT FILE_EXT,ATTACHMENT INTO V_file_ext,V_blob FROM RBCMS_INBOX WHERE MAIL_ID= D_ID; EXCEPTION WHEN NO_DATA_FOUND THEN htp.p('Documents not found'); END; ELSIF doc_loc = 2 THEN BEGIN SELECT DOC_EXT,DOCUMENT INTO V_file_ext,V_blob FROM RBCMS_DOCUMENTS WHERE DOC_ID = D_ID; EXCEPTION WHEN NO_DATA_FOUND THEN htp.p('Documents not found'); END; ELSE NULL;
IF UPPER(V_FILE_EXT)='PDF' THEN owa_util.mime_header('application/pdf'); ELSIF UPPER(V_FILE_EXT)='DOC' THEN owa_util.mime_header('application/msword'); ELSIF UPPER(V_FILE_EXT)='XLS' THEN owa_util.mime_header('application/msexcel'); ELSIF UPPER(V_FILE_EXT)='GIF' THEN owa_util.mime_header('image/gif'); ELSIF UPPER(V_FILE_EXT)='JPG' THEN owa_util.mime_header('image/jpeg'); ELSIF UPPER(V_FILE_EXT)='TIF' THEN owa_util.mime_header('image/tiff'); ELSE null; --owa_util.mime_header('text/plain'); END IF; length := dbms_lob.getlength(v_blob); while offset < length loop dbms_lob.read(v_blob, buffer_size, offset, buffer); htp.prn(utl_raw.cast_to_varchar2(buffer)); offset := offset + buffer_size; end loop; IF length = 0 THEN htp.p('Documents Not Available'); END IF;