2009-11-07 4 views
3

Réponse ASP.NET Quand vous faites quelque chose comme ceci:Nom du fichier dans le tampon

Response.Clear(); 

Response.OutputStream.Write(buffer, 0, buffer.Length); 
Response.ContentType = "audio/mpeg"; 
Response.Flush(); 

Le nom du fichier téléchargé est « Default.aspx ». Comment puis-je le changer pour quelque chose comme "a.mp3"?

Répondre

7
var cd = new ContentDisposition 
{ 
    FileName = "file.mp3" 
}; 
Response.AddHeader("Content-Disposition", cd.ToString()); 

ContentDisposition est une classe pratique qui vous permet de définir l'en-tête Content-Disposition d'une manière amicale, sans connaître le fonctionnement interne du protocole HTTP. Bien sûr, vous pouvez toujours définir l'en-tête manuellement si vous préférez:

Response.AppendHeader("Content-Disposition", "attachment; filename=file.mp3"); 
+1

Je voudrais seulement ajouter, si vous allez pour la manière manuelle et le nom de fichier contient potentiellement des espaces et vous ne connaissez pas le HTTP en détail, alors vous devez le citer: '" attachment: filename = \ "fichier avec spaces.mp3 \" "'. – BalusC

+0

+1. Le type ContentDisposition est nouveau pour moi, très bien. – AnthonyWJones

Questions connexes