2010-12-28 3 views
1

J'ai un point de terminaison ASP.NET qui prend une demande d'un fichier avec quelques params, chiffres sur le fichier à servir et fait quelque chose comme ceci:ASP.net lien de téléchargement apparaît parfois fenêtre de téléchargement

... 
if (File.Exists(zipPath)) 
{     
    string fileSaveName = "YourZip.zip";     

    Response.ContentType = "application/octet-stream"; 
    Response.AppendHeader("Content-Disposition", 
        "attachment; filename=\"" + fileSaveName + "\""); 
    Response.TransmitFile(zipPath); 
    Response.End(); 
} 
else 
{ 
    Throw404(); 
} 

Le problème est à la fois dans Firefox et Chrome (n'ont pas vérifié IE) aucune fenêtre de téléchargement s'ouvre et il attend jusqu'à ce que tout soit téléchargé puis télécharge instantanément le fichier. Des idées de pourquoi ou de meilleures façons de le faire?

Répondre

0

Pour une raison étrange, j'ai eu le code suivant sur la page qui a livré le zip:

private void SetPageCachingToZero() 
    { 
     Response.ExpiresAbsolute = DateTime.Now.AddDays(-1d); 
     Response.Expires = -1500; 
     Response.CacheControl = "no-cache"; 
    } 

Cela ne fait aucune différence dans Chrome ou Firefox, mais signifié dans IE je devais cliquer sur le lien deux fois. La première fois, ça échouerait.

Questions connexes