2010-10-21 6 views
0

J'ai un problème lorsque essayer le téléchargement automatique dans une autre page qui a déjà été spécifié.rediriger la page actuelle pour télécharger la page dans asp.net

Dans la page actuelle, j'ai un bouton pour déclencher la redirection de la page vers la page de téléchargement, mais je souhaite télécharger automatiquement fait, même si cela n'est pas automatique. Cela peut être fait en utilisant le lien pour télécharger le fichier. Nom de fichier que vous souhaitez télécharger, transférer à l'aide de la chaîne de requête, d'un cookie ou d'une session (j'utilise un cookie dans ce cas).

La page de redirection et de téléchargement à partir du bouton lien, fonctionne parfaitement comme je le souhaite. Mais le problème est que le téléchargement automatique ne fonctionne pas correctement.

Ce que j'essaie déjà de faire problème téléchargement automatique:

  1. en utilisant if (!IsPostBack) condition. Le téléchargement fonctionne, mais la page ne redirige pas vers la page de téléchargement et même la progression de cette mise à jour continue de fonctionner. (En fait, je mets la mise à jour de la mise à jour pour le but de générer le fichier avant la redirection et le téléchargement).

  2. en utilisant un temporisateur. Quand n'est pas la condition de postback, j'essaye d'activer le temporisateur avec l'intervalle 2sec. Lorsque l'événement de minuterie est déclenché, je désactive le minuteur et essaie de le télécharger. Mais le problème est la minuterie ne pas désactiver, garder toutes les 2 secondes pour télécharger le fichier.

Regard.

Répondre

1

Vous pouvez utiliser Server.Execute ("downloadpage.aspx"); pour l'exécuter en utilisant le code C#. ou utiliser javascript timer comme ceci:

function startdown() { 
var url = "<%= DownloadPageurl %>"; 
setTimeout("window.location.href='" + url + "';", 5000); 
} 

puis appeler la fonction startdown() en utilisant C# ou javascript en fonction de votre condition pour téléchargement

ou utilisation ci-dessous code pour télécharger

lass DownloadLibrary 
{ 
public static string getContentType(string Fileext) 
{ 
string contenttype = ""; 
switch (Fileext) 
{ 
case ".xls": 
contenttype = "application/vnd.ms-excel"; 
break; 
case ".doc": 
contenttype = "application/msword"; 
break; 
case ".ppt": 
contenttype = "application/vnd.ms-powerpoint"; 
break; 
case ".pdf": 
contenttype = "application/pdf"; 
break; 
case ".jpg": 
case ".jpeg": 
contenttype = "image/jpeg"; 
break; 
case ".gif": 
contenttype = "image/gif"; 
break; 
case ".ico": 
contenttype = "image/vnd.microsoft.icon"; 
break; 
case ".zip": 
contenttype = "application/zip"; 
break; 
default: contenttype = ""; 
break; 
} 
return contenttype; 
} 

public static void downloadFile(System.Web.UI.Page pg, string filepath) 
{ 
pg.Response.AppendHeader("content-disposition", "attachment; filename=" + new FileInfo(filepath).Name); 
pg.Response.ContentType = clsGeneral.getContentType(new FileInfo(filepath).Extension); 
pg.Response.WriteFile(filepath); 
pg.Response.End(); 
} 
} 

Références:

http://dotnetacademy.blogspot.com/2010/09/timer-in-javascript.html

http://dotnetacademy.blogspot.com/2010/01/download-any-file-or-image-from.html

http://dotnetacademy.blogspot.com/2010/07/code-to-download-file-on-buttton-click.html

Questions connexes