#c# #asp.net
#c# #asp.net
Вопрос:
У меня есть веб-приложение, в котором мне нужно открывать любые файлы в стандартных форматах, таких как .doc/docx/.csv/.txt/.xls в iframe . Как я могу этого добиться? Я попытался использовать приведенный ниже пример кода, но он открывает не все форматы файлов в iframe. Я получаю некоторую ошибку XML.
var ext = GetExtension(fileName);
switch (ext)
{
case "pdf":
Response.ContentType = "Application/pdf";
break;
case "htm":
case "html":
Response.ContentType = "text/html";
break;
case "txt":
Response.ContentType = "text/plain";
break;
case "doc":
Response.ContentType = "Application/vnd.ms-word";
break;
case "xls":
case "csv":
Response.ContentType = "Application/vnd.ms-excel";
break;
case "ppt":
case "pps":
Response.ContentType = "Application/vnd.ms-powerpoint";
break;
default:
Response.ContentType = "Application/unknown";
break;
}
if (Response.ContentType != "Application/unknown")
{
Response.Flush();
Response.WriteFile(fileName);
Response.End();
}
Комментарии:
1. Одна вещь, которую нужно попробовать, вместо
Response.Flush();
использованияResponse.Clear();
Ответ №1:
попробуйте добавить этот заголовок
Response.AppendHeader("Content-Disposition", "attachment; filename=file.[EXTENSION]")
вы должны заменить точное [РАСШИРЕНИЕ] здесь. как для pdf
Response.AppendHeader("Content-Disposition", "attachment; filename=file.pdf")
и тогда вы также можете написать
Response.BinaryWrite(File.ReadAllBytes(filename));
Response.Flush();
Response.End();
Ответ №2:
Попробуйте
Response.BinaryWrite(File.ReadAllBytes(filename));
Где filename — это полный путь к файлу