2009-07-01 9 views
2

私は現在、Webページのディレクトリを示すTreeViewを持っています。ノード上でクリックイベントをキャプチャできるとは思わないので、代わりにパラメータ(パス)を処理する同じページへのナビゲーションリンクを作成しています。ASP.NETでリダイレクトを使用して任意のファイルタイプを送信する方法

私はカップルの事を試してみた:


Response.ContentType = "text/txt"; 
Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName); 
Response.Write(file.ToString()); 
Response.End(); 

^^のみ上記のコードは、実際のテキストファイルに対して動作します(または私が定義したいものは何でも拡張)。 ^^


以下のコードは、ファイルをブラウザに文字のセットとして書き込みます。

if (!IsPostBack) 
{ 
    string path = Request["path"]; 

    if ((path != "") && (path != null)) 
    { 
     Response.TransmitFile(path); 
     Response.End(); 
    } 
} 

私は欠けているこれに良い解決策はありますか? TreeViewから選択すると、ファイルを保存するオプションを持つファイルを送信する必要があります。

ご協力いただきありがとうございます。

+0

コンテンツタイプとディスポジションを設定する必要があります。 –

答えて

4

はちょうどそれは私が考えて働いてしまった...

System.IO.FileInfo file = new System.IO.FileInfo(path); 

Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name); 
Response.AddHeader("Content-Length", file.Length.ToString()); 
Response.ContentType = "application/octet-stream"; 
Response.WriteFile(file.FullName); 
Response.End(); 
2

これは私が見つけることができる最高の記事です:ディスク上 http://www.west-wind.com/weblog/posts/76293.aspx

はファイル:生成された

Response.ContentType = "image/jpeg"; 
Response.AppendHeader("Content-Disposition", "attachment; filename=Image.jpg"); 
Response.TransmitFile(Server.MapPath("~/images/image.jpg")); 
Response.End(); 

ファイル

Bitmap bmp = GenerateImage();  
Response.ContentType = "image/jpeg"; 
Response.AppendHeader("Content-Disposition", "attachment; filename=Image.jpg");  
bmp.Save(Response.OutputStream, ImageFormat.Jpeg); 
関連する問題