Asp.net Silverlight动态批量文件下载应用程序

Asp.net Silverlight动态批量文件下载应用程序,asp.net,wcf,silverlight,c#-4.0,silverlight-4.0,Asp.net,Wcf,Silverlight,C# 4.0,Silverlight 4.0,我想创建一个Silverlight 4(或5)应用程序,它可以从托管web服务器批量/批量下载文件。在客户端上,用户将看到一个文件列表,从中选择一个或多个文件进行下载。从这一点上,我正试图弄清楚这将如何工作。我希望避免多次提示用户(例如,每个文件提示一次)。应该只有一个“另存为”提示符,然后从那里开始执行下载 以下是我的初步想法: (1)在客户端保存文件 如果有一种方法可以让用户选择一个下载文件的“放置文件夹”,那么将文件写入磁盘可能不会太困难。然而,我不知道在Silverlight中有什么方法

我想创建一个Silverlight 4(或5)应用程序,它可以从托管web服务器批量/批量下载文件。在客户端上,用户将看到一个文件列表,从中选择一个或多个文件进行下载。从这一点上,我正试图弄清楚这将如何工作。我希望避免多次提示用户(例如,每个文件提示一次)。应该只有一个“另存为”提示符,然后从那里开始执行下载

以下是我的初步想法:

(1)在客户端保存文件

如果有一种方法可以让用户选择一个下载文件的“放置文件夹”,那么将文件写入磁盘可能不会太困难。然而,我不知道在Silverlight中有什么方法可以做到这一点。隔离存储是我想到的第一件事,但一旦文件被写入,用户就不容易到达那个位置。。。据我所知,只有SaveFileDialog,我当然不想提示用户输入每个文件的位置和名称

(2)从服务器下载文件

如果我们能以某种方式利用浏览器的内置(保存/打开)下载功能,这将是一个简单的选择。我找到了一些基本的文章来演示如何做到这一点,但我认为我们的场景变得复杂了,因为有多个文件,用户选择批量下载的文件是动态的。在我看来,我想我正在考虑创建某种类型的“动态”zip/archive,其中包含用户选择下载的文件,然后将zip作为单个文件下载

对于如何实现这样的目标,有什么想法或建议吗?我相信这是可能的,但对我来说这只是一个新领域


谢谢

你做的大部分研究都很好。Silverlight将不得不在您想将任何数据下载到客户端计算机时提示(SaveDialog),因为Silverlight应用程序在沙箱中运行,这意味着您在没有对话框提示的情况下无法访问任何本地文件和文件夹

我认为解决方案最适合在silverlight中下载文件,尝试将它们全部保存在内存中,然后使用SharpZipLib for silverlight并尝试动态压缩文件


问候。

你做了大部分的研究。Silverlight将不得不在您想将任何数据下载到客户端计算机时提示(SaveDialog),因为Silverlight应用程序在沙箱中运行,这意味着您在没有对话框提示的情况下无法访问任何本地文件和文件夹

我认为解决方案最适合在silverlight中下载文件,尝试将它们全部保存在内存中,然后使用SharpZipLib for silverlight并尝试动态压缩文件


问候。

太好了!SharpZipLib允许我动态创建一个zip文件,其中包含用户指定的文件。我将zip流转换为字节数组以保存在客户端上。谢谢你的回复。太好了!SharpZipLib允许我动态创建一个zip文件,其中包含用户指定的文件。我将zip流转换为字节数组以保存在客户端上。谢谢你的回复。