在我的网络应用程序中,我正在使用文件。有些文件非常大。我使用Response.Write()
将文件写入浏览器。这适用于较小的文件,但对于大文件,这可能需要一段时间,并且带宽已被充分利用。
是否可以拆分大型文档并将其逐个发送到浏览器?还有其他方法可以更快地将文档发送到浏览器吗?
我将文档保存为对象的属性。
答案 0 :(得分:2)
为什么不压缩文件并将其存储在数据库中并解压缩它将解压缩?
根据这些问题你可以做很多事情:
文件多久更改一次?
我真的需要DB中的文件吗?
为什么不将文件路径存储在 DB和磁盘上的文件?
无论如何,由于您的文件带宽非常高,并且您希望应用程序做出适当的响应,您可能希望使用AJAX异步加载文件。你可以拥有一个WebHandler .ashx。
以下是一些例子:
http://www.dotnetcurry.com/ShowArticle.aspx?ID=193&AspxAutoDetectCookieSupport=1
http://www.viawindowslive.com/Articles/VirtualEarth/InvokingserversidecodeusingAJAX.aspx
答案 1 :(得分:1)
我的问题是,是否有可能 拆分大文件并发送 一块一块地浏览器?
这取决于文件类型,但通常没有。如果您要发送excel文件或word doc等内容,接收应用程序将需要所有信息(字节)来完全形成文档。您可以将文档物理地分成多个文档,这样您就可以这样做。
答案 2 :(得分:1)
如果充分使用带宽,那么除了在发送之前压缩文档之外,没有什么可以“加速”。拉上拉链。
根据文件(我知道你说过.mht,但我们在这里谈论内容),你会发现尺寸下降了一些。也许这就足够了,也许不是。
无论哪种方式,这完全取决于您要发送的内容量与可用于发送内容的管道大小。其中一个比另一个更难改变。
答案 3 :(得分:1)
尝试设置IIS的动态压缩。默认情况下,它设置得相当低,但您可以尝试将其设置为更高的压缩级别,并查看它有多大帮助。
答案 4 :(得分:0)
我无法快速使用ASP.NET,但您可以从FileStream缓冲到某种输出流。
答案 5 :(得分:0)