我可以使用silverlight在客户端的PC上写一个文件

时间:2009-04-15 20:47:02

标签: .net silverlight

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

我可以使用Silverlight执行此操作吗?怎么样?

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

由于

编辑:对于Brian Genisio,我可以要求用户权限保存文件,所以我认为打开和保存对话框对我的情况是好的。但是,如果这还不够,有没有办法在有或没有用户交互的情况下将文件保存在隔离存储之外,例如为用户模拟新的下载?

5 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:3)

您可以使用silverlight使用IsolatedStorageFile Class。

另一个链接:How to Read and Write files in the Isolated Storage?

答案 2 :(得分:3)

出于安全原因,您cannot do this

  

基于Silverlight的应用程序没有   使用操作的文件系统   系统并限于使用   隔离存储以保持和访问   文件,所以这个命名空间[System.IO]没有   提供任何其他功能。   有关如何更多信息   基于Silverlight的应用程序使用   隔离存储,请参阅Isolated Storage

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

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

答案 3 :(得分:0)

另一种选择(不优雅但有效)可以是使用服务执行乒乓球:

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

我的情况稍微简单一点,在我的应用程序中,我需要将DB Diagram导出为JPEG并执行导出以及HTML报告,我使用了这种方法(乒乓:) :.

如果你想看看:

http://www.dbschemaeditor.com

HTH   布劳略

答案 4 :(得分:0)

使用Silverlight 4,您可以通过使用AutomationFactory自动化FileSystemObject以原始方式执行此操作。

请参阅:http://justinangel.net/CuttingEdgeSilverlight4ComFeatures#BlogPost=CuttingEdgeSilverlight4ComFeat