2011-12-09 40 views
0

我正在使用silverlight4應用程序,我有一個要求將字/ pdf文件存儲在數據庫(sqlserver)中,併成功地做到了這一點,現在我想用我的擴展名使用相應的應用程序打開存儲的文件。使用OOB,它可以打開文件或將文件存儲在用戶選擇的位置。任何人都可以幫我解決這個問題?如何在silverlight4中打開word/pdf?

在此先感謝。

回答

1

我建議創建一個.aspx頁面中或HttpHandler的然後覆蓋ProcessRequest方法。

public void ProcessRequest(HttpContext context) 
{ 
    //database table or PDF/word file 
    System.IO.MemoryStream mstream = GetData(); 
    //Convert the memorystream to an array of bytes. 
    byte[] byteArray = mstream.ToArray();   

    string fileName= "test.pdf"; 
    context.Response.Clear(); 

    context.Response.AppendHeader("content-disposition", "attachment; filename=" + fileName); 
    context.Response.ContentType = "application/octet-stream"; 
    context.Response.BinaryWrite(byteArray); 
    context.Response.Flush(); 
    context.Response.End(); 
} 

Silverlight應用程序將採取行動,就像正常的客戶端,並使得上面的代碼中使用

<HyperlinkButton Content="Click Me" NavigateUri="Download.aspx?id=fileid" /> 

context.Response.AppendHeader("content-disposition", "attachment; 

告訴瀏覽器提示打開/保存對話框HTTP請求。

我希望這會起作用。

0

只需提供一個HTML超鏈接給你的word/pdf文件。只要用戶點擊鏈接,打開/保存對話框就會在客戶端瀏覽器打開。爲此,您可以使用如下所示的內容:

<HyperlinkButton Content="Click Me" NavigateUri="filep URL" /> 
+0

當用戶點擊鏈接。我已經從服務器獲取二進制數據,並且必須構造它,然後必須保存。正確的 – Prabhakaran

+0

我會建議,在服務器中構建文件,然後將內容發送到客戶端。 – Maheep

0

我使用Acrobat Reader插件爲我進行顯示。它確實需要一種不同的方法,具體取決於應用程序是在瀏覽器內部還是外部運行(我檢查應用程序是否在瀏覽器內運行,並相應地更改顯示方式)。如果在瀏覽器內部運行,我使用IFrame覆蓋應用程序,如本文中所述:http://www.silverlightshow.net/items/Building-a-Silverlight-Line-Of-Business-Application-Part-6.aspx。否則,我使用WebBrowser控件。我有一個控制,可以在我的書附帶的源代碼中完成這一切,可從Apress網站下載:http://www.apress.com/9781430272076/

希望這有助於...

克里斯