1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
CREATE OR REPLACE PROCEDURE PRC_OPEN_PIC(inINST in VARCHAR2 default NULL,imgid in number,mime_type in varchar2,filenm in varchar2 default NULL) as
tmpbloblen number;
tmpblob BLOB;
tmpdumpblob BLOB;
tmpmime_type VARCHAR2(30);
sqlstr VARCHAR2(2000);
ofilenm varchar2(60);
BEGIN
tmpmime_type:=mime_type;
ofilenm:=filenm;
If mime_type='tiff' then tmpmime_type:='image/tiff';
ElsIf mime_type='gif' then tmpmime_type:='image/gif';
ElsIf mime_type='jpg' then tmpmime_type:='image/jpeg';
ElsIf mime_type='dcp' then tmpmime_type:='image/tiff';
ElsIf mime_type='dcf' then tmpmime_type:='application/pdf';
ElsIf mime_type='pdf' then tmpmime_type:='application/pdf';
End if;
If inINST is not NULL then
sqlstr := 'select image from '||upper(inINST)||'_IMAGES where id = '||to_char(imgid);
EXECUTE IMMEDIATE sqlstr INTO tmpblob;
tmpbloblen := dbms_lob.getlength(tmpblob);
if tmpbloblen=0 then
htp.p('No file to load !');
else
dbms_lob.createtemporary(tmpdumpblob,true);
dbms_lob.copy(tmpdumpblob,tmpblob,tmpbloblen,1,1);
htp.p('Content-type: '||tmpmime_type);
htp.p('Content-length: '|| to_char(tmpbloblen));
If mime_type='dcp' then
htp.print('Content-Disposition: attachment; filename="'||ofilenm||'"');
ElsIf mime_type='dcf' then
htp.print('Content-Disposition: attachment; filename="'||ofilenm||'"');
End if;
owa_util.http_header_close;
wpg_docload.download_file(tmpdumpblob);
dbms_lob.freetemporary(tmpdumpblob);
end if;
EXCEPTION
WHEN OTHERS THEN
htp.p(SQLCODE || SQLERRM);
end; |
Partager