Загрузка файла с отслеживанием прогресса c # - PullRequest
0 голосов
/ 25 апреля 2018

Я довольно новичок в веб-разработке, и в настоящее время я создаю веб-сайт для клиентов с использованием клиентской части Angular 5, серверной части c #, с использованием ASP.NET Core. У меня проблема в том, что я могу передать файл и загрузить его, но хочу каким-то образом отслеживать процесс загрузки, так как перед загрузкой файла я запускаю целую кучу проверок форматирования, которые могут занять от 10 до 15 минут. к размеру файла.

Есть ли способ получить два HTTP-запроса, один из которых запустит процесс и вернет индикатор того, что процесс начался, а другой - может периодически вызываться из внешнего интерфейса, а также предоставит обновление статуса при выполнении проверки .

Заранее спасибо!

1 Ответ

0 голосов
/ 25 апреля 2018

Прежде всего - что-то не так, если вам нужно подождать 15-20 минут - вам, вероятно, нужно создать отдельный рабочий поток для этого (поиск фоновой работы для ядра asp.net) и передать сообщение клиентам после использованиячто-то вроде SignalR.

О прогрессе - JQuery deferred поддерживает метод progress.Я считаю, что есть реализация обещаний.И SignalR также поддерживает это.

Далее, вам нужно реализовать это на стороне сервера как-то так https://blogs.msdn.microsoft.com/dotnet/2012/06/06/async-in-4-5-enabling-progress-and-cancellation-in-async-apis/

Пример прогресса:

https://www.codeproject.com/Articles/1124691/SignalR-Progress-Bar-Simple-Example-Sending-Live-D

Надеюсь, этого достаточно, чтобы начать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...