我认为这个问题在许多地方都有重复。但我想知道更好的解决方案,它不会给服务器带来开销。
我的方案就像用户应该能够点击网站上的链接,该链接将从服务器获取正确的文件并将其发送给用户。
我看到如下解决方案,
string filename1 = "newfile.txt";
string filename = @"E:\myfolder\test.txt";
Response.ContentType = "application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + filename1 + "\"");
Response.TransmitFile(filename);
并且喜欢在下面发帖,
答案 0 :(得分:1)
我提到的两种方法之间的差异是:
1.使用Response.TransmitFile
2.使用Response.WriteFile
为了比较这两种方法,你应该看看这些链接:
TransmitFile 将指定文件直接写入HTTP响应输出流,而不在内存中缓冲。
WriteFile 将指定文件直接写入HTTP响应输出流。
显然,Response.TransmitFile()
将文件发送到客户端计算机而不将其加载到服务器上的应用程序内存中,但是Response.WriteFile()
方法会将正在下载的文件加载到服务器的应用程序内存区域中。
我会说基于此单独使用Response.TransmitFile()
用于更大的文件。
但是,在做出最终决定之前,您需要了解这会如何影响您应用程序的其他部分。
在各种论坛上对此进行了全面的辩论。寻找它。