我正在使用silverlight4应用程序,我有一个要求将word / pdf文件存储在数据库(sqlserver)中,并且我成功了,现在我想使用带有我的扩展名的相应应用程序打开存储的文件.Iam不使用OOB,可以打开文件或将文件存储在用户选择的位置。任何人都可以帮助我吗?
提前致谢。
答案 0 :(得分: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应用程序将像普通客户端一样运行,并使用
进行http请求<HyperlinkButton Content="Click Me" NavigateUri="Download.aspx?id=fileid" />
在上面的代码中
context.Response.AppendHeader("content-disposition", "attachment;
告诉浏览器提示输入OPEn / Save对话框。
我希望这会奏效。
答案 1 :(得分:0)
只需为您的word / pdf文件提供HTML超链接。用户单击链接后,将在客户端浏览器中打开打开/保存对话框。为此你可以使用这样的东西:
<HyperlinkButton Content="Click Me" NavigateUri="filep URL" />
答案 2 :(得分: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/。
希望这会有所帮助......
克里斯