Мне нужно проверить, успешно ли скачан файл. Результат моего действия - возврат CheckedFileStreamResult. Однако OnResultExecutedhandler запускается еще до завершения загрузки файла.
Я использую в своей программе следующее предлагаемое решение:
public class CheckedFileStreamResult : FileStreamResult
{
public CheckedFileStreamResult(FileStream stream, string contentType): base(stream, contentType)
{
DownloadCompleted = false;
}
public bool DownloadCompleted { get; set; }
protected override void WriteFile(HttpResponseBase response)
{
var outputStream = response.OutputStream;
response.BufferOutput = false;
using (FileStream fs = new FileStream("D:\\ABC.pdf", FileMode.Open, FileAccess.Read))
{
var buffer = new byte[_bufferSize];
var count = fs.Read(buffer, 0, _bufferSize);
while (count != 0 && response.IsClientConnected)
{
outputStream.Write(buffer, 0, count);
response.Flush();
count = fs.Read(buffer, 0, _bufferSize);
}
DownloadCompleted = response.IsClientConnected;
}
}
private const int _bufferSize = 0x200;
}
Используя этот механизм, я не могу добиться желаемого эффекта. Обработчик OnResultExecuted выполняется до полной загрузки файла, и флаг DownloadCompleted дает ложное впечатление. Пожалуйста, объясните мне, как действовать дальше.





Пожалуйста, обратитесь по следующему URL-адресу. https://stackoverflow.com/questions/49470127/detect-if-file- был загружен-успешно ssfully-in-asp-net-m vc-5