2013-06-11 3 views
1

Je souhaite autoriser le client à télécharger une pièce jointe. Ici, attachment.AttachmentContent est un tableau d'octets du fichier. Lorsque je clique sur le bouton pour télécharger la pièce jointe, il exécute ce code ci-dessous. Mais j'ai l'erreur de script suivante. Que dois-je faire pour le réparer?Télécharger l'élément avec la réponse

Uncaught Sys.WebForms.PageRequestManagerParserErrorException: Sys.WebForms.PageRequestManagerParserErrorException: Le message reçu du serveur n'a pas pu être analysé. Les causes courantes de cette erreur sont lorsque la réponse est modifiée par des appels à Response.Write(), des filtres de réponse, HttpModules ou la trace du serveur est activée. Détails: Erreur d'analyse près de ' JFIF``'.

Attachment attachment = _attachmentService.GetAttachmentBytesById(int.Parse(e.CommandArgument.ToString())); 

Response.Clear(); 
Response.ClearHeaders(); 
Response.ContentType = "image/jpeg"; 
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + "test.jpg" + "\""); 
Response.OutputStream.Write(attachment.AttachmentContent, 0, attachment.AttachmentContent.Length); 
Response.End(); 

Répondre

2

Paraît que vous envoyez ce fichier téléchargement en réponse partielle.

La cause la plus commune si votre bouton de téléchargement est dans un UpdatePanel.

Les fichiers ne peuvent être envoyés que sur un PostBack complet.

Vous pouvez définir votre bouton de téléchargement comme un déclencheur PostBack pour résoudre ce problème.

<Triggers> 
    <asp:PostBackTrigger ControlID="Download_Click"> 
</Triggers> 
Questions connexes