Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从以二进制格式存储文件的数据库下载文件_C#_Asp.net_File_Download_Binary - Fatal编程技术网

C# 从以二进制格式存储文件的数据库下载文件

C# 从以二进制格式存储文件的数据库下载文件,c#,asp.net,file,download,binary,C#,Asp.net,File,Download,Binary,我从数据库下载文档时遇到了一个问题 目前我在ASP.net项目中工作,这是我的第一个职业项目。 我们有一些存储在数据库中的文档。文档(.pdf、.doc、.png、.docx、xls、xlsx)以指定类型的二进制格式存储 我可以使用Response.write下载一个文档。但现在我必须连接一些文档,然后允许用户点击按钮下载 我在谷歌上搜索了很多。开发商说这是不可能的。但我仍然觉得这是可以做到的 然而,如果这是不可能的,我想我会先在一些服务器位置保存这些单独的文档,然后压缩它们,然后允许用户下载。

我从数据库下载文档时遇到了一个问题

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

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

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

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


请帮帮我。我遇到了一个大问题。

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

此代码使用
Ionic.Zip
压缩多个文件,并将它们写入
内存流

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),通过浏览器下载时,所有内容都会正确显示和保存。

压缩文件似乎是一种方法。您可以从数据库中检索文档,将它们转换为文档的类型(您在数据库中指定了该类型),然后将它们添加到ZIP文件中。根据文件的大小,您可以在内存中执行此操作,并将ZIP文件提供给用户。否则,您可以将文档写入磁盘(在服务器上),然后创建一个ZIP文件。创建ZIP文件后,您可以删除文档,下载后删除ZIP文件。非常感谢您……Stefan和Davin……我将在半小时内尝试,然后告诉您结果