2010-07-17 2 views
0

У меня есть документ с текстом, который отлично открывается на сервере, но когда я загружаю его, используя событие нажатия кнопки на моем сайте, он получает ругательство. Я использую ниже код на кнопке, чтобы сделать загрузку документа. пожалуйста, помогите решить эту проблему: я использую рамки .net 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")); 

ответ

1

Хорошо хорошо вот код я использую, это VB, но легко преобразовать;)

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() 

Это работает для PDF и изменения .ContentType в Excel плюет, что слишком .. Так что я предполагаю, что это займет любой тип MIME. Удачи!

Я беру документ pdf под названием MergedFile и преобразовываю его в byte(), я даю ему «ShortName», который может быть введен пользователем. Content-Length очень важен.

1

Вместо этого попробуйте:

Response.ContentType ="application/msword"; 

Я не использую слово, но для Excel я использую:

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

http://www.asptutorial.info/sscript/ContentType.html - вот список всех из них. – Markive

+0

Я пробовал, но оба они не вносят никаких изменений. –

1

У вас есть Response.End() после этого кода, который вы опубликовали? Если нет, вы получите дополнительный «html» код из файла aspx, добавленного в передаваемый файл, - таким образом, развращая его.