Le serveur ne peut pas effacer les en-têtes après les en-têtes HTTP ont été envoyés
Afin de télécharger un fichier que j'ai écrit le code suivant
[AcceptVerbs(HttpVerbs.Post | HttpVerbs.Get)] public ActionResult Download(string fileName) {
try {
string filepath = @"C:\shadow_copy.rar";
Response.ClearHeaders();
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename= " + fileName.TrimEnd());
Response.AddHeader("Content-Length", fileName.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.WriteFile(filepath.TrimEnd());
Response.End();
}
catch (Exception exp)
{
//
}
return Redirect("http://mysite.com");
}
J'ai également utilisé
if (!Réponse.IsRequestBeingRedirected) //ne Sera pas appelé Réponse.Redirect("http://www.google.com")
mais il montre l'erreur
"Ne peut pas rediriger après les en-têtes HTTP ont été envoyés."
- Que voulez-vous accomplir? Pour télécharger un fichier ou rediriger l'utilisateur. Vous devez choisir l'un à l'autre.
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas rediriger après avoir téléchargé le Fichier, vous tentez d'effectuer 2 actions où vous ne pouvez le faire la première.
Je vous suggère de télécharger le fichier dans une nouvelle (popup) de la fenêtre et de rediriger la page principale, si nécessaire.
Essayer comme ça, c'est un peu plus facile:
Aussi vous ne pouvez pas rediriger après le téléchargement.
J'ai cette exception lors du Téléchargement de plusieurs fichiers excel. premier fichier téléchargé avec succès, mais le second fichier de téléchargement de temps a obtenu cette exception. J'ai été écrit à la suite du code.