pdf - 将 PDF 读取为 Blob,然后作为附件发送

标签 pdf powerbuilder email-attachments

我正在尝试将 PDF 读入 blob 对象,然后插入到我的 oracle 数据库 中,以便可以将其作为附件发送。现在电子邮件部分正在工作,并且它添加了一个附件,但附件总是损坏,我无法打开它。下面是我创建 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 打开时出现此错误 - 无法打开,因为它不是受支持的文件类型或因为它已损坏(例如,它是作为电子邮件附件且未正确解码)

谢谢

最佳答案

PDF 文件有多大?

您可能无法通过简单的 FileRead() 获取所有内容 - 尝试使用 FileReadEx()

关于pdf - 将 PDF 读取为 Blob,然后作为附件发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13633846/

相关文章:

c - 如何修复 mupdf 中的 "cannot find ExtGState dictionary"?

r - 我运行 knit-minimal.lyx 得到 "LaTeX Error: File ` 图/最小无聊图 1' not found."

Powerbuilder - 保留以前检索的数据

php - 使用 PHP 起草带附件的 IMAP 电子邮件

javascript - 另存为 PDF : recommend a server solution to receive raw data from client and send back PDF to client?

iPhone:如何从文档中获取 PDF 文档的标题?

webcam - Powerbuilder网络摄像头

database - 如何使用 Sybase 和 Power Builder 快速开发数据库和 Web 应用程序?

Android发送带有多个附件的邮件问题

email - 修改 CDO.Message 对象中附件的内容类型