我有一个silverlight应用程序,从亚马逊s3中检索文件。此时我正在使用SaveFileDialog将其保存到磁盘。从silverlight传递流到浏览器
我正在寻找更好的方式来保存文件。我已经看过并实施了隔离存储,但最终决定不使用它,因为所有的限制。
此外,silverlight限制保存在没有保存文件对话框的隔离存储之外的文件,所以我不能保存文件,然后将文件路径传递给浏览器。所以这是不可能的
HtmlPage.Window.Navigate(urlToFile, "_blank");
我现在有什么选择将此流传递给浏览器?
对于要存储什么换呢?之后它是否应该提供给用户?如果它应该对用户可用,例如在他的下载文件夹中,你可以尝试在你的应用中显示一些链接。点击它会弹出正常的浏览器下载对话框。 – Eleasar
该文件存储在Amazon S3中。 AWS SDK for .NET不适用于silverlight。此外,我需要验证请求,所以我不能把超链接到文件。由于silverlight的安全限制无法直接保存到下载文件夹,所以我必须显示保存文件对话框(我想绕过)。所以我留下的唯一选择是将Silverlight应用程序中的文件作为来自Amazon的流传输并以某种方式传递给网页。此外,只要用户可以在浏览器中查看它,它就应该可供用户使用,这并不重要。 –
该文件是什么?你会在Silverlight中显示的内容(如电影或音频或图像)或用户需要某些外部软件(如MS Word或Photoshop等)的东西?在第一种情况下,你只需要使用像http://stackoverflow.com/questions/1789846/silverlight-load-image-with-filestream这样的东西,但对于第二种情况,他必须将其存储在本地并打开它(=文件保存对话框)或者你必须编写一些从亚马逊获取文件的web服务器(例如asp.net)代码,并让用户下载它未经授权的或使用iis/asp.net认证。 – Eleasar