バイナリ ファイル、PDF、Word、または Excel を Web ブラウザに送信するページがあります。Firefox と IE の両方で、このファイルをどうするか、「開く」または「保存」するかを尋ねるダイアログが開きます。
しかしChromeはそれをあなたのコンピュータに直接保存します。
ファイルをブラウザーに送信する前に、メタデータを Web 応答に配置して、このファイルをどうしたいかを Chrome に尋ねさせることはできますか?
バイナリ ファイル、PDF、Word、または Excel を Web ブラウザに送信するページがあります。Firefox と IE の両方で、このファイルをどうするか、「開く」または「保存」するかを尋ねるダイアログが開きます。
しかしChromeはそれをあなたのコンピュータに直接保存します。
ファイルをブラウザーに送信する前に、メタデータを Web 応答に配置して、このファイルをどうしたいかを Chrome に尋ねさせることはできますか?
Chrome に強制的に保存ダイアログを表示させることはできません。ユーザーは、Chrome の構成(高度な設定)でその動作を変更する必要があります。
ブラウザがストリーミングしているものを処理する方法を認識できるように、いくつかのヘッダーを送信する必要があります。
Response.ContentType
Content-Disposition, application,and
filename=" + FileName
これにより、ダウンロードが強制されます。詳細については、次のリンクも参照してください。
http://www.devtoolshed.com/aspnet-download-file-web-browser
ありがとう
多分それは役立つでしょう
System.String filePath = "c:\\tempFile.pdf"
System.IO.FileInfo fileInfo = new FileInfo(filePath);
System.Web.HttpContext context = System.Web.HttpContext.Current;
System.Web.HttpResponse response = context.Response;
response.Clear();
response.ClearHeaders();
response.ClearContent();
response.ContentType = "application/pdf";
response.AppendHeader("content-type", "application/pdf");
response.AppendHeader("content-length", fileInfo.Length.ToString());
response.AppendHeader("content-disposition", String.Format("attachment; filename={0}.pdf", outputFileName));
response.TransmitFile(filePath);
response.Flush(); // this make stream and without it open chrome save dialog
context.ApplicationInstance.CompleteRequest(); // send headers and c# server-side code still continue
System.IO.File.Delete(filePath); // clean cache here if you need
response.End();