我正在尝试将PDF读入blob对象,然后对我的oracle database
执行INSERT,以便将其作为附件发送。现在电子邮件部分正在工作,它添加了一个附件,但附件总是损坏,我无法打开它。下面是我创建blob pdf的代码,有人可以帮我弄清楚为什么这不是创建正确的附件?
ls_pdf_name = ls_pdf_path + "\" + "invnum_" + ls_invoice + ".pdf"
ls_pdf_filename = "invoice_" + ls_invoice + ".pdf"
ls_rc = wf_check_pdf_status(ll_invoice_number, ls_sub_type, ll_user_supp_id)
If ls_rc = "Y" Then
li_fnum = FileOpen(ls_pdf_name, StreamMode!)
li_bytes = FileRead(li_fnum, bPDF)
FileClose(li_fnum)
ll_rc = wf_update_pdf_tables(bPDF, ls_pdf_filename, ls_sub_type, ll_user_supp_id, ll_invoice_number, ls_month, ls_year)
修改
所以我接受了Calvin的建议,并将我的插入内容改为:
以下是将blob放入表中的INSERT
语句
INSERT INTO ATTACH_DOCUMENT
(id, filename, mime_type, date_time_created)
VALUES
(ATTACH_DOCUMENT_SEQ.NEXTVAL, :pdf_filename, 'application/pdf', CURRENT_TIMESTAMP);
UPDATEblob ATTACH_DOCUMENT
SET data = :pdf
WHERE id = ATTACH_DOCUMENT_SEQ.CURRENTVAL;
但是当我从我的电子邮件中打开PDF电子邮件附件时,Adobe会打开此错误 - 无法打开,因为它不是受支持的文件类型,或者因为它已被损坏(例如它是作为电子邮件附件并未正确解码)
由于
答案 0 :(得分:2)
PDF文件有多大?
您可能无法使用简单FileRead()
获取所有内容 - 请尝试使用FileReadEx()
答案 1 :(得分:0)
首先要检查pdf是否正确保存在数据库中: