Скачать файл без всплывающего окна в ASP.NET - PullRequest
2 голосов
/ 12 июня 2009

Я загружаю файл, используя код

btnDownloadTemplate.Attributes.Add( "onClick", "window.open('StudyReport/WordReportTemplate.doc', 'OpenTemplate', 'resizable=no,scrollbars=no,toolbar=no,directories=no,status=no,menubar=no,copyhistory=no');return false;" );

Появится всплывающее окно и отобразится диалог загрузки. Как можно избежать всплывающего окна, и на экране отображается только диалог загрузки?

Ответы [ 5 ]

3 голосов
/ 17 июня 2009

Я получил ответ. Я удаляю Атрибуты и добавляю событие click и в него.

    string path = Server.MapPath("");
    path = path + @"\StudyReport\WordReportTemplate.doc";
    string name = Path.GetFileName( path );
    Response.AppendHeader( "content-disposition", "attachment; filename=" + name );
    Response.ContentType = "Application/msword";
    Response.WriteFile( path );
    Response.End(); 
2 голосов
/ 18 августа 2009

Обычный трюк - открыть ссылку в <iframe>. Это не требует JavaScript, и не будет открывать всплывающие окна или пустые вкладки. <iframe> может быть очень маленьким, поэтому он почти невидим.

<iframe name="DownloadDummy">
</iframe>

И ссылка:

<a href="http://example.com/file.csv" target="DownloadDummy">Download File</a>
2 голосов
/ 12 июня 2009

Не делайте Window.Open, просто измените URL страницы, чтобы быть документом.

1 голос
/ 18 августа 2009

Кроме того, вы можете просто использовать window.location вместо window.open.

var file = 'StudyReport / WordReportTemplate.doc'; window.location = file;

0 голосов
/ 13 июня 2009

Вы смотрели на метод HttpResponse.WriteFile ?

...