2010-07-17 12 views
0

J'ai le document de mot qui s'ouvre parfaitement au serveur mais quand je le télécharge en utilisant l'événement clic de clic de mon site Web il obtient currept. J'utilise le code ci-dessous pour cliquer sur le bouton pour télécharger le document. s'il vous plaît aider à résoudre ce problème: je suis en utilisant NET Framework 3,5Erreur dans le fichier après le téléchargement

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")); 

Répondre

1

Ok est bien ici le code que je l'utilise, il 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() 

Cela fonctionne pour PDF et en changeant .ContentType vers Excel crache que trop .. Donc, je suppose que cela prendra n'importe quel type MIME. Bonne chance!

Je prends mon document pdf appelé MergedFile et le convertit en octet(), je lui donne un 'ShortName' qui peut être entré par l'utilisateur. Content-Length est très important ..

1

Essayez plutôt:

Response.ContentType ="application/msword"; 

Je n'utiliser Word mais pour Excel J'utilise:

Response.ContentType = "application/x-msexcel" 
+0

http://www.asptutorial.info/sscript/ContentType.html - Voici une liste de tous. – Markive

+0

J'ai essayé mais les deux ne font aucun changement. –

1

Avez-vous un Response.End() après ce code que vous avez publié? Sinon, vous obtiendrez un code "html" supplémentaire du fichier aspx ajouté au fichier transmis - le corrompant ainsi.

Questions connexes