привет здесь начинающий APEX,
У меня возникают проблемы с динамическим вложением pdf-url в мое приложение. Изображения отображаются нормально, но это не работает с pdf.
У меня есть apex_process для вызова процедуры, используемой для загрузки BLOB файлов (* code1). Этот apex_process вызывается через URL-адрес. Я получил img-теги, чтобы показывать изображения, когда я устанавливаю указанный URL-адрес в свойстве sgc-тега img. Однако, похоже, это не работает с тегами объектов. Установка URL-адреса свойства данных тега объекта ничего не делает.
Кто-нибудь знает, как динамически показывать PDF, хранящийся в БД. любая помощь приветствуется
APEX 5.0.4 Oracle 11g
* code1
sys.htp.init;
sys.htp.p('Content-length: ' || sys.dbms_lob.getlength(p_FileBlob));
sys.htp.p('Content-Disposition: attachment; filename="' || p_FileNm|| '"' );
sys.owa_util.http_header_close;
sys.wpg_docload.download_file(p_FileBlob);
Обновить
Возможно, я был неясен в своей цели. Я хочу на самом деле внедрить PDF-документ в мою страницу, например, иметь вид adobe-reader-esque непосредственно на странице. У вас нет ссылки для загрузки pdf.
Я создал страницу (стр. 32) для обработки всех загрузок. Он имеет скрытый элемент идентификатора (P32_ID) и несколько перед процессами заголовка. Каждый процесс обрабатывает другой запрос.
Для pdf это может быть следующим:
На вызывающей странице: f? P = & APP_ID.: 32: & SESSION.: GETPDF: NO :: P32_ID: YOUR_PDF_ID
На страницу отправляется запрос: GETPDF и идентификатор PDF для загрузки.
На странице 32 есть функция ЗАГРУЗКА - перед процессом заголовка с условием REQUEST = Expression 1, GETPDF.
Код PLSQL для этого процесса:
declare
l_length pls_integer;
l_blob blob;
l_content_type varchar2(100);
l_filename varchar2(30);
begin
select blobdata
into l_blob
from your_blob_table
where ID = v('P32_ID');
l_content_type := 'application/pdf';
l_length := nvl(dbms_lob.getlength(l_blob), 0);
if l_length = 0
then
htp.p('No data');
return;
end if;
l_filename := 'GETPDF.pdf';
-- create response header
owa_util.mime_header(l_content_type, false);
-- add furhter header attributes
htp.p('Content-length: ' || l_length);
htp.p('Content-Disposition: attachment; filename="' || l_filename || '"');
-- close the headers
owa_util.http_header_close;
-- download the BLOB
wpg_docload.download_file(l_blob);
exception
when others then
htp.p(sqlerrm);
end;