Как узнать, что загрузка файла тега привязки () завершена?C#

Место общения программистов C#
Anonymous
Как узнать, что загрузка файла тега привязки () завершена?

Сообщение Anonymous »

У меня есть приложение Blazor-Server, на странице которого есть загрузки файлов.
Когда пользователь загружает большой файл (>250 МБ), он временно создается по физическому пути на сервере, загружается, а затем должен быть удален из физического пути на сервере.

Проблема в том, что я не могу удалить файл до того, как пользователь завершит загрузку, и поэтому мне нужен способ узнать, когда этот процесс будет завершен.
В настоящее время я использую метод, предложенный Microsoft для загрузки больших файлов в Blazor-Server, с некоторыми дополнениями, например:

Код: Выделить всё

await module.InvokeVoidAsync("triggerFileDownload", fileName, urlFilePath);
А JavaScript такой:

Код: Выделить всё

const anchorElement = document.createElement('a');
if (typeof anchorElement.download === 'undefined') {
window.location = url;
}
else {
anchorElement.href = url;
if (triggerFileDownload) {
anchorElement.download = fileName ?? '';
}
anchorElement.target = '_blank';
document.body.appendChild(anchorElement);
anchorElement.click();
document.body.removeChild(anchorElement);
}
url: физический путь к файлу, временно сохраненному на сервере.
JavaScript Interop не ожидает загрузки. Как только элемент привязки удаляется из тела, C# берет на себя управление и продолжает работу, поэтому удаление файла сразу после этого невозможно.

Подробнее здесь: https://stackoverflow.com/questions/785 ... s-finished

Вернуться в «C#»