我需要编写一个允许客户端从服务器下载文件的Web应用程序,到目前为止一直很好,但文件必须是一种编码,所以我需要在客户端上对其进行解码并将其写入文件在客户端的PC上。
我可以使用Silverlight执行此操作吗?怎么样?
如果不可能,还有另一种方法吗?有什么建议吗?
由于
编辑:对于Brian Genisio,我可以要求用户权限保存文件,所以我认为打开和保存对话框对我的情况是好的。但是,如果这还不够,有没有办法在有或没有用户交互的情况下将文件保存在隔离存储之外,例如为用户模拟新的下载?
答案 0 :(得分:8)
在Silverlight 3.0中,您可以通过OpenFileDialog访问读取和写入文件。在Silverlight 2.0中,您可以访问Isolated Sotrage,它可以将您保存到沙箱中。但是,如果没有用户许可,您可能永远无法完全访问文件系统。
答案 1 :(得分:3)
您可以使用silverlight使用IsolatedStorageFile Class。
答案 2 :(得分:3)
出于安全原因,您cannot do this:
基于Silverlight的应用程序没有 使用操作的文件系统 系统并限于使用 隔离存储以保持和访问 文件,所以这个命名空间[System.IO]没有 提供任何其他功能。 有关如何更多信息 基于Silverlight的应用程序使用 隔离存储,请参阅Isolated Storage。
如果可能,您可能希望将其移位,以便服务器执行编码并以传统方式使文件可供下载。
如果您要对隐私/安全进行编码,请考虑仅使用安全协议(使用SSL的HTTPS)提供下载。
答案 3 :(得分:0)
另一种选择(不优雅但有效)可以是使用服务执行乒乓球:
我的情况稍微简单一点,在我的应用程序中,我需要将DB Diagram导出为JPEG并执行导出以及HTML报告,我使用了这种方法(乒乓:) :.
如果你想看看:
HTH 布劳略
答案 4 :(得分:0)
使用Silverlight 4,您可以通过使用AutomationFactory自动化FileSystemObject以原始方式执行此操作。
请参阅:http://justinangel.net/CuttingEdgeSilverlight4ComFeatures#BlogPost=CuttingEdgeSilverlight4ComFeat