0

从数据库下载文档时遇到问题。

目前我在 ASP.net 项目中工作,这是我的第一个职业项目。我们有一些文档存储在数据库中。文档(.pdf、.doc、.png、.docx、xls、xlsx)以二进制格式存储,并指定了它们的类型。

我可以使用 Response.write 下载一份文档。但现在我必须连接一些文档,然后允许用户点击按钮下载。

我用谷歌搜索了很多。开发人员说这是不可能的。但我仍然觉得这是可以做到的。

但是,如果这是不可能的,我想我会先将这些单独的文档保存在某个服务器位置,然后压缩它们,然后允许用户下载。但是我如何能够将单个文档以原始格式保存在服务器位置。

请帮帮我。我有大问题。

4

1 回答 1

0

在将 zip 文件呈现给响应流之前,从数据库中读取多个文档并对其进行压缩并非不可能。您可以在过程中完成这一切,无需将文档保存到服务器。

此代码用于Ionic.Zip压缩多个文件并将它们写入MemoryStream

foreach (var file in files)
{
    zipFile.AddEntry(file.FileName, file.ContentBytes);  // these are the file bytes
}
var zipMs = new MemoryStream();
zipFile.Save(zipMs);
zipMs.Seek(0, SeekOrigin.Begin);
zipMs.Flush();

file.FileName包括文档的扩展名 (.docx),当通过浏览器下载时,所有内容都会正确显示和保存。

于 2013-06-14T09:32:50.393 回答