2016-08-03 8 views
1

私はVS2015でプログラムを開発しています。 abc.htmlファイルを動的に作成しました。今私は、ユーザーがHTMLファイルを開くかブラウザで保存するボタンをクリックすると機能が必要です。私はそれを行うことはできますか?次のようにコードが動的にHTMLファイルを作成する は次のとおりです。asp.netのボタンをクリックしてhtmlファイルをダウンロードするには?

クライアント側を次のように

<asp:button ID="BtnGenrateHTML" runat="server" text=" Generate HTML " OnClick="btnAddnew_Click" /> 

コードを

protected void TestThisHTML(object sender, EventArgs e) 
    { 
     string sFileFullName; 
     string sFilePath; 
     string sFileName; 

     string strHTMLGrid = ""; 


     strHTMLGrid = strHTMLGrid + "Dear Customer,<BR><BR> Please provide below OTP to complete registration <BR><BR> "; 
     strHTMLGrid = strHTMLGrid + "<BR><BR> This OTP is valid for 15 minutes."; 
     strHTMLGrid = strHTMLGrid + "<BR><BR> With Best Regards - Indiefy"; 
     strHTMLGrid = strHTMLGrid + "<BR><BR> Hi My name is Basant Gera"; 



     sFilePath = Server.MapPath(""); 
     sFileName = "abc.html"; 
     sFileFullName = sFilePath + "\\" + sFileName; 
     if (!Directory.Exists(sFileFullName)) 
     { 
      Directory.CreateDirectory(sFilePath); 
     } 
     // if it exist than to delete it. 
     if (System.IO.File.Exists(sFileFullName)) 
     { 
      System.IO.File.Delete(sFileFullName); 
     } 

     // If it deleted than we need to create it again 
     FileStream fs = new FileStream(sFileFullName, FileMode.Create); 
     using (StreamWriter w = new StreamWriter(fs, Encoding.UTF8)) 
     { 
      w.WriteLine(strHTMLGrid); 
     } 

     fs.Close(); 
     Page.ClientScript.RegisterStartupScript(this.GetType(), "", "fncpopup();", true); 
    } 

今すぐマイabc.Htmlファイルが正常に動作している次のように後ろに... 。 ボタンをクリックするだけで、このHtmlファイルがブラウザに保存され、特定の場所に開くか保存するかをブラウザに問い合わせます。

<asp:button ID="BtnGenrateHTML" runat="server" text=" Generate HTML " OnClick="btnAddnew_Click" /> 

HTMLのファイルが保存される場所----> mappath.serverを使用して現在のディレクトリに保存しています。

可能であれば、PCの私たちのディレクトリにあるダウンロードフォルダに保存してください。

答えて

1

は、あなたが応答して、この最後の送信を試みた持っている:素晴らしい作業

{... 
    .... 
    fs.Close(); 
    Response.ContentType = "application/octet-stream"; 
    Response.AppendHeader("Content-Disposition","attachment; filename=abc.html"); 
    Response.TransmitFile(sFileFullName); 
    Response.End(); 
    .... 
} 
+0

その...私はそれを適用しかし、知識ベースを持っている私は「」アプリケーション/オクテットストリームとContent-処分が何であるかを知っているかもしれませんアタッチメント; filename = abc.html ...お知らせください。 –

+0

@BasantGeraサーバとクライアント間のすべてのリクエストとレスポンスには、クライアントブラウザ、リクエストされたページ、サーバに関する情報を含むHTTPヘッダがあります ここで、 'application /あなたが 'text/html'で置き換えた場合、ブラウザはこれがhtmlファイルであることを理解するでしょう。 「Content-Disposition」、「attachment; filename = abc.html'これは、httpヘッダーにファイル名(abc.html)を割り当てて、添付ファイルとして送信します(ブラウザーで開くダウンロードプロンプトウィンドウ)。 –

+0

あなたはhttpヘッダー[here](http://code.tutsplus.com/tutorials/http-headers-for-dummies--net-8039)について見ることができます もしあなたが助けて解決されたように確認してください –

関連する問題