微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

连接两个另存为 blob 的 PDF 文件

如何解决连接两个另存为 blob 的 PDF 文件

我正在创建一个网络应用程序。为此,我使用 Microsoft sql Server 2016 (SP1-GDR) (KB4505219) - 13.0.4259.0 (X64) 和 ASP.NET MVC 5。

在我的数据库中,我有一个包含 PDF 文件的表格。我已将文件内容作为 blob 存储在该表中。我还在那个表中存储了文件名。

现在我想让我的客户可以下载多个 PDF 文件。应连接 PDF 文件。因此,如果客户请求所有 PDF 文件,他或她应该将所有 PDF 文件合并为一个 PDF 文件

我想到了两种连接 PDF 文件方法

  • 首先是连接 sql Server 查询中的 PDF 文件。因此,当我从数据库获取 blob 时,它已经连接在一起,我无需在 C# 代码中进一步执行任何操作。
  • 其次是从数据库获取所有 blob 并在 C# 中连接这些 blob。

我尝试使用 sql Server 中的 COALESCE 函数来连接 sql Server 中的 blob。

DECLARE @blobcontent varbinary(max);

SELECT 
    @blobcontent = COALESCE(@blobcontent,0x0) + FileTable.fileContent
FROM 
    FileTable;

SELECT @blobcontent;

这对我不起作用。

因此,在从数据库获取所有 blob 后,我尝试在 C# 中连接 blob。我尝试创建一个新的字节数组变量并将所有 blob 放在新的字节数组中。

...
var file1 = GetFileById(1); /*the function GetFileById(int id) returns a tuple (byte[],string) with the file-content as the first Element and the file-name as the second element*/
var file2 = GetFileById(2);
var concatenatedFile = file1.Item1.Concat(file2.Item1).ToArray();
...

这对我也不起作用。

有没有聪明的方法解决这个问题?

解决方法

好的。正如我所怀疑的那样,不可能以这种形式连接 blob(请参阅 PSK 的评论)。我将通过简单地向客户端提供 zip 文件来解决这个问题,因为我不想为此包含任何其他库。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。