2012-04-03 8 views
1

iFrameのソースとしてWebサービスを指定することはできますか?iFrameのWebサービスを指定してファイルをダウンロードする

私はファイルダウンロードを取得しようとしていますが、ファイルが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

0

この目的で汎用ハンドラ(* .ashx)を使用できます。

私はあなたのために、このサンプルをGoogleで検索しました:http://geekswithblogs.net/hmloo/archive/2012/03/07/how-to-download-files-using-a-generic-handler.aspx

+0

ありがとうございます。これは動作しますが、新しいウィンドウが開きます。私は同じページにすべてが起こったように感じるためにiFrameを使用しようとしていました。 – Asdfg

+0

@Asdfg:新しいタブでリンクを開くことは、ihmoが標準として採用されています。また、大部分のユーザーは、あなたが出す行動をイベントとして認識しないと考えるべきです。 – citronas

関連する問題