Ошибка в файле после загрузки
У меня есть текстовый документ, который прекрасно открывается на сервере, но когда я загружаю его, используя событие нажатия кнопки на моем веб-сайте, он становится реальным. Я использую приведенный ниже код при нажатии кнопки, чтобы загрузить документ. Пожалуйста, помогите решить эту проблему: я использую.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"));
3 ответа
Хорошо, вот код, который я использую, это 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", которое может быть введено пользователем. Длина контента очень важна..
У вас есть Response.End()
после того кода вы разместили? Если нет, вы получите дополнительный "html" код из файла aspx, добавленного в передаваемый файл, что приведет к его повреждению.
Вместо этого попробуйте:
Response.ContentType ="application/msword";
Я не использую Word, но для Excel я использую:
Response.ContentType = "application/x-msexcel"