ASP.Net Загрузить файл в браузер клиента - программирование
Подтвердить что ты не робот

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

Ошибка:

Невозможно оценить выражение, потому что код оптимизирован или собственный кадр находится поверх стека вызовов.

4b9b3361

Ответ 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 + "\"");

Это вернет точное имя файла, даже если оно содержит пробелы или другие символы.