2011-05-09 144 views
4

我有一個瀏覽器託管SL應用程序。我想要的很簡單:應用程序生成一個文檔(xls,doc,jpg ...),用戶單擊一個按鈕,然後可選擇出現一個對話框,他需要單擊確定,然後Excel,Word,圖片查看器或任何啓動並打開SL應用程序創建的文檔。silverlight打開文檔

到目前爲止,我所看到的都是不完整的解決方案。

大多數人建議彈出一個SaveFileDialog。首先,在保存之後,用戶需要首先找到文件以打開它,而他通常甚至不想將它保存在第一位,只是查看它。糟糕的UX。

另一種可能的解決方案是將文件保存在獨立存儲中,並使用COM interop啓動Excel。但是我相信在瀏覽器主機中沒有COM互操作,COM互操作依賴於平臺。我的SL應用程序也適用於Moonlight。

然後其他人建議將瀏覽器從SL重定向到文檔的HTTP位置。這可以工作,但這並不能真正解決我的問題,因爲那時我需要將文檔以某種方式放在服務器上。

任何人都知道一個真正的解決方案?這裏也可以接受'否'作爲答案。

回答

3

確切的答案是:不。您真正想從瀏覽器主機中執行的操作會違反我們對Silverlight插件的期望。

即將到來的Silverlight 5會向您的要求方向發展,允許系統管理員使用組策略將授權行爲授予某些運行瀏覽器的xp,但此解決方案是否會延伸到月光(以及是否會發生這種情況)是任何人的猜測。

可能值得您考慮的一些問題,爲什麼在客戶端上運行的Silverlight應用程序負責生成文檔?這僅僅是出於可擴展性的原因嗎?如果不是爲什麼將文檔生成代碼移動到服務器?

0

如果文件被保存在服務器端那麼我們可以使用下面的代碼

​​ 打開該文件