Загрузить файл и уведомление с помощью Asp.Net

#c# #asp.net #webforms

#c# #asp.net #веб-формы

Вопрос:

В моем веб-приложении есть кнопка загрузки, и когда клиент нажимает на нее, оно должно показывать сообщение о том, что файл уже загружен.

Вот код для загрузки:

 FileInfo arquivo = new FileInfo(pathCompletoArquivo);

FileInfo fInfo = arquivo;

Response.Clear();

Response.ContentType = "application/octet-stream";

Response.AddHeader("Content-Disposition", "attachment; filename=""   fInfo.Name   """);

Response.AddHeader("Content-Length", fInfo.Length.ToString());

Response.WriteFile(fInfo.FullName);

Response.Flush();
  

Я хочу показать сообщение клиенту после этого, я пробовал всплывающие окна, javascripts… но ничего не сработает.

Obs.: Не нужно показывать сообщение при завершении загрузки.

Ответ №1:

Вы не можете сделать это в том же HTTP-ответе, который также отправляет содержимое файла обратно.

Что вам нужно сделать, это добавить click обработчик на кнопку загрузки, который отображает всплывающее окно, если файл был загружен, и делает фактический запрос на загрузку файла (который запускает код, который вы нам показываете), если он этого не сделал. Вы бы сделали это с помощью JavaScript.

Комментарии:

1. Да, я использовал javascript, чтобы открыть другую страницу в другом окне. Страница отвечает за запуск загрузки. [«window.open(pageDownload.aspx);»] Без кода загрузки на главной странице команда для отображения сообщения работает нормально.

Ответ №2:

Похоже, вы на правильном пути. Убедитесь, что вы проверяете Response.IsClientConnected при записи в поток ответов.