Вопрос

Каков наилучший способ реализовать действие загрузки с веб-страницы, используя asp.net 2.0?

Файлы журналов для действия создаются в каталоге с именем [Корень приложения]/Logs.У меня есть полный путь, и я хочу предоставить кнопку, при нажатии на которую файл журнала будет загружен с сервера IIS на локальный компьютер пользователя.

Это было полезно?

Решение

Помогает ли это:

http://www.west-wind.com/weblog/posts/ 76293.aspx

Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition","attachment; filename=logfile.txt");
Response.TransmitFile( Server.MapPath("~/logfile.txt") );
Response.End();

Response.TransmitFile - это приемлемый способ отправки больших файлов вместо Response.WriteFile.

Другие советы

http://forums.asp.net/p/1481083/3457332.aspx

string filename = @"Specify the file path in the server over here....";
FileInfo fileInfo = new FileInfo(filename);

if (fileInfo.Exists)
{
   Response.Clear();
   Response.AddHeader("Content-Disposition", "attachment; filename=" + fileInfo.Name);
   Response.AddHeader("Content-Length", fileInfo.Length.ToString());
   Response.ContentType = "application/octet-stream";
   Response.Flush();
   Response.TransmitFile(fileInfo.FullName);
   Response.End();
}


Обновить:

Исходный код

Response.AddHeader("Content-Disposition", "inline;attachment; filename=" + fileInfo.Name);

имеет "встроенное; вложение", т.е.два значения для размещения содержимого.

Не знаю, когда именно это началось, но в Firefox Только правильное имя файла не появлялось.Появится окно загрузки файла с названием веб-страницы и ее расширением (имя страницы.aspx).После загрузки, если вы переименуете его обратно в настоящее имя;файл успешно открывается.

Согласно эта страница, он действует на Принцип "В порядке живой очереди".Изменение значения на attachment только решил проблему.

PS:Я не уверен, что это лучшая практика, но проблема решена.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top