2009-05-27 4 views
0

J'ai une page web (asp.net) qui compile un paquet puis redirige l'utilisateur vers le fichier de téléchargement via javascript (window.location = ....). Ceci est accompagné d'un lien physique sur la page au cas où la redirection ne fonctionnerait pas - émulant le processus de téléchargement sur de nombreux sites populaires. Lorsque la barre d'informations IE apparaît en haut à cause des paramètres de sécurité restreints et qu'un utilisateur clique dessus pour télécharger le fichier, il redirige l'utilisateur vers la page, pas le fichier de téléchargement, qui actualise la page et supprime le lien dur.Barre d'information IE, télécharger le fichier ... comment puis-je coder pour cela?

Que fait la barre d'information ici? Ne devrait-il pas envoyer l'utilisateur à l'emplacement de la redirection? Est-ce que je mets quelque chose de mal dans les en-têtes de la réponse au téléchargement, ou si je fais quelque chose de mal pour envoyer le fichier en premier lieu?

C# Code:

m_context.Response.Buffer = false; 
m_context.Response.ContentType = "application/zip"; 
m_context.Response.AddHeader("Content-Length", fs.Length.ToString()); 
m_context.Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}_{1}.zip", downloadPrefix, DateTime.Now.ToString("yyyy-MM-dd_HH-mm"))); 
//send the file 
+0

Il est difficile d'aider ici sans plus de code ... la redirection JS, le balisage de la page, et le reste du code pour publier le fichier zip serait utile. –

Répondre

0

Lorsqu'un utilisateur accepte de télécharger un fichier en utilisant l'IE barre d'informations, IE actualiser la page affichée, pas la page du fichier que l'utilisateur tente de télécharger. La différence est que, une fois la page rechargée, IE permettra au script de téléchargement de passer sans que l'utilisateur ne soit invité. Je ne suis pas sûr de ce que la pensée est sur ce point de vue du design, mais c'est comme ça que ça fonctionne.

Questions connexes