2012-04-03 31 views
1

是否可以將Web服務指定爲iFrame的源?將iframe指向webserivce下載文件

我想讓文件下載工作,但由於我的文件存儲爲SQL Server中的二進制文件,我不能指出用戶指定的文件。我必須獲取文件,處理它並提示用戶保存/打開對話框。我想知道是否有辦法將iFrame指向一個web服務調用,它將負責處理文件下載請求?

我試過下面的代碼,但它不起作用。

任何想法我在這裏失蹤什麼?

<iframe id="downloadFrame" style="display:none"></iframe> 

<input type="button" value="Download File" title="Download File" onclick = "JavaScript: return downloadFlie();" /> 

    function downloadFlie() 
    { 
     var iframe = document.getElementById("downloadFrame"); 
     iframe.src = "Services/svcAttachments.asmx/DownloadFile?FileId=5"; 
     return false 
    } 

回答

1

爲什麼不只是使用錨點和目標?

<a href="Services/svcAttachments.asmx/DownloadFile?FileId=5" target="_blank">Download</a> 
+0

謝謝。這工作,但打開一個新窗口。我試圖使用iFrame來讓感覺像在同一頁面上發生的一切。 – Asdfg 2012-04-03 20:20:22

0

您可以爲此使用通用處理程序(* .ashx)。

我用這個樣本爲你搜索:http://geekswithblogs.net/hmloo/archive/2012/03/07/how-to-download-files-using-a-generic-handler.aspx

+0

謝謝。這工作,但打開一個新窗口。我試圖使用iFrame來讓感覺像在同一頁面上發生的一切。 – Asdfg 2012-04-03 20:21:07

+0

@Asdfg:在新選項卡中打開鏈接是標準ihmo。你也應該考慮,大多數用戶不會意識到你計劃的行爲。 – citronas 2012-04-04 06:44:11