ASP.Net Загрузить файл в браузер клиента
Я пишу простую тестовую страницу для загрузки текстового файла в браузер при нажатии кнопки. Я получаю действительно странную ошибку, которую я никогда раньше не видел. Любые мысли?
Ошибка возникает на 'Response.End();' и файл никогда не попадает в браузер клиента
код:
string filePath = "C:\\test.txt";
FileInfo file = new FileInfo(filePath);
if (file.Exists)
{
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "text/plain";
Response.TransmitFile(file.FullName);
Response.End();
}
Ошибка:
Невозможно оценить выражение, потому что код оптимизирован или собственный кадр находится поверх стека вызовов.
Ответы
Ответ 1
Попробуйте изменить его.
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.AddHeader("Content-Disposition", "attachment; filename=" + file.Name);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "text/plain";
Response.Flush();
Response.TransmitFile(file.FullName);
Response.End();
Ответ 2
Просто небольшое дополнение к вышеуказанному решению, если у вас возникла проблема с загруженным именем файла...
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + file.Name + "\"");
Это вернет точное имя файла, даже если оно содержит пробелы или другие символы.