从 BLOB 流加载 PDF (MySQL/C#)

发布于 2024-11-28 03:22:37 字数 351 浏览 1 评论 0原文

  • 中使用 BLOB
  • 在 MySQL C# VS 2010
  • PDF Reader 组件(从 C# 添加) 显示 PDF

我有一个使用 MySQL 作为后端、C# 作为前端的应用程序。我已经在我的表单中添加了 PDF 阅读器组件,并且我希望在该表单上显示 pdf。可以使用组件的 loadFile 方法访问 pdf。我的 PDF 以 BLOB 形式存储在 MySQL 中,我将其提取并复制到磁盘。然后我将路径链接到 loadFile 参数以显示我的 pdf.. 这一切都工作正常,但现在我想知道是否有一种方法可以显示 pdf(在 MySQL 中作为 blob 存储),而无需先将其复制到硬盘。

I am using

  • BLOBs in MySQL
  • C# VS 2010
  • PDF Reader Component ( added from C#) to
    display the PDF

I have an application that uses MySQL as backend and C# as front. i have added a PDF Reader component to my form and i wish to show the pdf on that form. the pdf can be accessed using the loadFile method of the component. My PDFs are stored as BLOBs in MySQL which i extract and copy it to the disk. I then link the path to the loadFile Argument to display my pdf..
This all works fine but now i would like to know if there is a way so that i can display the pdf (stored as a blob in MySQL) without copying it to the hard disk first.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝颜夕 2024-12-05 03:22:37

您是否尝试过直接将其读取到二进制数组,然后将其发送到输出?沿着这些思路的东西应该有效。您的等效数据适配器将在第一行工作。

        // Generate Report
        byte[] data = (byte[])dataTable.Rows[0]["BLOB"];

        // Present the generated PDF to the user
        Response.Clear();
        Response.ContentType = "application/pdf";
        Response.AddHeader("content-length", data.Length.ToString());
        Response.BinaryWrite(data);
        Response.Flush();
        Response.Close();

Have you tried reading it directly to a binary array and then sending it to the output? Something along these lines should work. Your equivalent data adapter would work in the first line.

        // Generate Report
        byte[] data = (byte[])dataTable.Rows[0]["BLOB"];

        // Present the generated PDF to the user
        Response.Clear();
        Response.ContentType = "application/pdf";
        Response.AddHeader("content-length", data.Length.ToString());
        Response.BinaryWrite(data);
        Response.Flush();
        Response.Close();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文