我们正在开发一个Web应用程序。在该应用程序中,为了下载文件,我创建了一个WCF Rest服务,该服务将根据此链接Download using WCF Rest下载文件。目的是在下载之前检查用户身份验证。我用流媒体概念下载文件。现在我发现了一些事情
当用户下载文件时,他无法确定文件大小和剩余时间。我分析并发现原因是因为它在标题中使用了“传输编码:分块”,因此文件将以块的形式下载。其中一个优点是即使有许多用户下载文件,服务器中的内存消耗也较少。所以我想添加“ Content-Length ”标题,但我发现你只能使用其中一个标题而不是两个标题。所以我在想Hotmail和Gmail是如何下载附件的。根据我的调查,我发现Hotmail使用了分块标题,而Gmail则使用了Content-length标题。同样在Gmail的情况下,它还会检查会话是否处于活动状态,然后相应地下载文件。我想实现以下目标
a)与Gmail一样,我想检查会话是否处于活动状态,然后相应地下载文件。我实施它的方法是什么?
b)下载文件时,我想使用 Content-Length 标头而不是 Chunked 标头。内存消耗也应该更少。我们可以在WCF休息中实现吗?如果是这样的话?
c)我是否可以在WCF中添加一个标题,在浏览器下载窗口中显示文件大小?
d)从WCF下载内联图像时,我发现加载后的图像没有缓存在本地计算机中。我想,一旦图像显示在HTML页面中,它将自动缓存,下次用户访问该页面时,图像将从缓存而不是服务器加载。我想将内联图像缓存到缓存中,我可以使用哪个选项?从服务器下载内嵌图像时是否需要指定任何标题?
e)当我在iPhone Chrome浏览器中使用WCF下载zip文件时,根本不会下载。但是相同的链接适用于Android Chrome浏览器。可能是什么问题呢?我在WCF中缺少标题吗?
是否有任何方法可以实现上述目标?
的问候,
Jollyguy