#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
при записи в поток ответов.