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