Question

J'ai un document word dont l'ouverture est parfaitement au serveur, mais quand je le télécharger à l'aide de l'événement clic du bouton de mon site, il obtient currept.je suis à l'aide de code ci-dessous sur le bouton cliquez pour télécharger le document.s'il vous plaît aider à résoudre ce problème:je suis à l'aide .net framework 3.5

 Response.Clear();
 Response.AddHeader("Content-Disposition", "attachment; filename=StandardLetter" + _responseId.ToString() + ".doc");
 Response.ContentType = "application/octet-stream";

 Response.TransmitFile (Server.MapPath("~/document/letter/StandardLetter" + _responseId.ToString() + ".doc"));
Était-ce utile?

La solution

OK Bien voici le code que j'utilise, c'est VB mais facilement converti;)

 Response.ContentType = "application/pdf"
        Dim byteArray As Byte() = File.ReadAllBytes(MergedFile)

        Response.AddHeader("Content-Disposition", "attachment;filename=""" & ShortFilename & """")
        Response.AddHeader("Content-Length", byteArray.Length)
        Response.BinaryWrite(byteArray)
        Response.Flush()
        Response.End()

Ceci fonctionne pour PDF et en changeant .Contenttype pour exceller les critères. Donc, je suppose que cela prendra un type MIME.Bonne chance!

Je prends mon document pdf appelé fusiblefile et le convertir en un octet (), je lui donne un "nom shortName" qui peut être entré par l'utilisateur.La longueur de contenu est très importante ..

Autres conseils

Avez-vous un Response.End() après que le code que vous avez posté?Si non, vous allez obtenir plus de "html" code à partir du fichier aspx ajouté le fichier transmis - donc il corruption.

MODIFIER
Comme Akshay Anand mentionné, une meilleure façon serait d'appeler HttpContext.Current.ApplicationInstance.CompleteRequest(); au lieu de Response.End() voir les docs.Voir aussi cette question.

Au lieu d'essayer:

Response.ContentType ="application/msword";

Je n'utilise pas Word mais pour Excel, j'utilise:

Response.ContentType = "application/x-msexcel"

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top