从浏览器中打开Silverlight中的PDF和其他文档

时间:2011-10-19 15:44:01

标签: c# silverlight silverlight-oob

我在确定打开存储在数据库中的文件的最佳方法时遇到了一些问题。该文件作为字节数组存储在数据库的nvarbinary字段中。目前,当我想打开一个文件时,我使用一个ASP.NET网页,我将一个变量传递给该页面并将文件流写入该页面。这在使用浏览器版本的Silverlight应用程序时工作正常,但是当在浏览器之外时,我无法调用浏览器窗口打开,因为我无法访问dom。

如何在不调用浏览器窗口的情况下从Silvelright打开bytearray?我能够将bytearray和文件类型传递给Silverlight应用程序没问题。我只是不知道如何在那里展示它。

谢谢!

1 个答案:

答案 0 :(得分:3)

如果您的目标是Windows(启用了完全信任,而不是mac),则可以先将文件写入磁盘(在隔离存储或“我的文档”中),然后使用{ {1}} COM对象让操作系统打开文件。

将字节流保存到文件并具有文件位置后,您可以执行以下操作:

WScript.Shell

如果您想利用现有的ASP页面,可以将其URL传递给using (dynamic shell = AutomationFactory.CreateObject("WScript.Shell")) { shell.Run(fileLocation); //works similar to start -> run -> filename } ,操作系统将使用用户的默认浏览器打开该页面。

在Mac上,您可以做的最好的事情是将文件保存到他们的用户目录,并让他们手动导航到finder并双击它。

相关问题