0

我需要通过在 Web 服务器上运行的应用程序使文件服务器中的文件可供下载。用户将单击应用程序页面上可用的链接,然后会出现另存为对话框。这种用例很常见,我可能在谈论一个基本的事情,但如果有人能确认我的以下假设是否正确,我将不胜感激。

1)文件服务器上的文件,通过Web服务器中的虚拟目录虚拟映射以供应用程序访问(作为链接),可以使用内容处置将其直接流式传输到客户端(代码类似于答案这里),意思是不涉及任何代码来处理或分块文件以进行流式传输。

2) 由于文件是直接从文件服务器流式传输的,因此 Web 服务器在内存或磁盘使用方面不会受到影响(当然会使用 CPU)。

谢谢

4

1 回答 1

2

由于您想直接写入文件并将内存占用降至最低,请考虑使用HttpResponse.TransmitFile

将指定文件直接写入 HTTP 响应输出流,而不将其缓冲在内存中。

据我所知,如果您必须通过 asp.net 编写文件,这是在响应中发送文件的最有效方法。

Response.AppendHeader("Content-Disposition", "attachment; filename="+ fileName );
Response.TransmitFile(fullPath);
Response.Flush();
Response.End();
于 2013-03-25T07:32:48.037 回答