银光开放文档

4
我有一个在浏览器中托管的SL应用程序。我想要的很简单:应用程序生成文档(xls、doc、jpg等),用户点击按钮,然后可能会出现对话框,在其中需要点击确定,然后Excel、Word、图片查看器或其他应用程序启动并打开SL应用程序创建的文档。
到目前为止,我看到的都是不完整的解决方案。
大多数人建议弹出SaveFileDialog。首先,在保存后,用户需要先找到文件才能打开它,而且他通常甚至不想先保存,只是想查看它。用户体验很差。
另一个可能的解决方案是将文件保存在隔离存储中,并使用COM互操作启动Excel。但我认为在浏览器主机中没有COM互操作,而且COM互操作非常依赖于平台。我的SL应用程序也应该与Moonlight一起工作。
然后其他人建议将浏览器从SL重定向到文档的HTTP位置。这可以工作,但这并没有真正解决我的问题,因为我需要以某种方式将文档放在服务器上。
有人知道真正的解决方案吗?'否'也可以被接受为答案。
2个回答

3
明确的答案是:不行。从浏览器中运行的插件Silverlight,我们期望它提供的安全性会被破坏。
即将发布的Silverlight 5在一定程度上满足了您的需求,允许系统管理员使用组策略为某些在浏览器中运行的xap授予可信行为,但这个解决方案是否适用于Moonlight(以及何时适用)还有待进一步观察。
值得考虑的一些问题是,为什么客户端上运行的Silverlight应用程序要负责生成文档?这只是为了可扩展性吗?如果不是,为什么不将文档生成代码移到服务器上?

0
如果文件保存在服务器端,我们可以使用以下代码打开该文件。
string uri = HtmlPage.Document.DocumentUri.ToString();
uri = uri.Remove(uri.LastIndexOf('#'), uri.Length - uri.LastIndexOf('#'));
uri=uri.Remove(uri.LastIndexOf('/'));
System.Windows.Browser.HtmlPage.PopupWindow(new Uri(uri + "/FolderName/filenamewithextension"), "_blank", null);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接