Как заставить Chrome открыть "диалог открытия файла" при загрузке файла vía ASP.NET codebehind?

У меня есть страница, которая отправляет файл binari, pdf, word или excel в веб-браузер. В firefox и IE открывается диалоговое окно с вопросом, что вы хотите сделать с этим файлом, "открыть" или "сохранить"

enter image description here

но Chrome сразу сохранить его на свой компьютер.

можно сделать Chrome спросит вас, что вы хотите сделать с этим файлом, размещение некоторых метаданных в веб-ответе перед отправкой файла в браузер?

3 ответов


невозможно заставить Chrome запрашивать диалог сохранения. Пользователь должен изменить это поведение в конфигурации chrome (дополнительные параметры).

enter image description here


вам нужно отправить некоторые заголовки, чтобы браузер знал, как обращаться с вещью, которую вы транслируете:

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();