2009-04-15 36 views
10

我需要编写一个Web应用程序,允许客户端从服务器上下载文件,目前为止这么好,但文件必须是一种编码,所以我需要在客户端解码并将其写入客户端PC上的文件中。我可以在客户端的PC上使用Silverlight编写一个文件

我可以使用Silverlight做到这一点吗?如何?

如果不可能,还有另一种方法可以做到吗?有什么建议么?

感谢

编辑:暴露布赖恩Genisio,我可以要求用户permision保存文件,所以我认为,打开和保存对话框都ok我的情况。但是,如果这还不够,有没有办法通过或不通过用户交互将文件保存在独立存储之外,例如为用户模拟新的下载?

回答

8

在Silverlight 3.0中,您将有权通过OpenFileDialog读取和写入文件。在Silverlight 2.0中,您可以访问Isolated Sotrage,它可以让您保存到沙箱中。但是,如果没有用户许可,您可能永远无法完全访问文件系统。

3

cannot do this出于安全原因:

基于Silverlight的应用程序不 使用操作系统 系统的文件系统,并且只限于使用 独立存储坚持并访问 文件,因此此名称空间[System.IO]不提供任何其他功能,即 。 有关基于Silverlight的应用程序如何使用 独立存储的更多信息,请参阅Isolated Storage

如果可能,您可能需要将其移位,以便服务器执行编码并使文件以传统方式下载。

如果您对隐私/安全性进行编码,请考虑仅在安全协议(使用SSL的HTTPS)上提供下载。

0

另一种选择(不优雅,但工程)可以使用的服务进行乒乓:

  • 从服务器获取文件。
  • 在客户端执行所需的编码/转换。
  • 使用WCF服务再次将其发送到服务器,将其存储在会话中。
  • 从SL调用一个javascript方法,它将向自定义HTTP hanlder发出请求。
  • 那个自定义的HTTP hanlder会返回作为附件在会话中的文件(第一次来自IE的令人讨厌的栏会出现......你将要下载的东西......)。

我的情况有点简单,在我的应用程序中,我需要将数据库图导出为JPEG格式,并执行导出以及HTML报告,我使用了该方法(ping pong :))。

如果你想看看:

http://www.dbschemaeditor.com

HTH 布劳

相关问题