Filestream.readtimeout: недопустимое исключение операции - PullRequest
0 голосов
/ 27 декабря 2018

Я хочу скачать файл (в качестве примера .PDF) с помощью Файлового потока.Вот надуманный пример:

public ActionResult GetPDF()
{
    ActionResult ar = null;
    FileStream fs = null;
    try
    {
        fs = System.IO.File.OpenRead(filename);
        var bytes = new byte[fs.Length];
        var x = fs.Read(bytes, 0, Convert.ToInt32(fs.Length));
        abcd fr = new abcd(fs, "application/pdf");
    }
    catch(Exception)
    {
    }
    return ar;
}


public class CheckedFileStreamResult : FileStreamResult
{
    public bool DownloadCompleted { get; set; }

    public CheckedFileStreamResult(FileStream stream, string contentType)
        : base(stream, contentType)
    {
        DownloadCompleted = false;
    }

    protected override void WriteFile(HttpResponseBase response)
    {
        var outputStream = response.OutputStream;
        response.BufferOutput = false;
        using (FileStream)
        {
            var buffer = new byte[_bufferSize];
            var count = FileStream.Read(buffer, 0, _bufferSize);
            while (count != 0 && response.IsClientConnected)
            {
                outputStream.Write(buffer, 0, count);
                count = FileStream.Read(buffer, 0, _bufferSize);
            }
            DownloadCompleted = response.IsClientConnected;
        }
    }

    private const int _bufferSize = 0x1000;
}

public class abcd : CheckedFileStreamResult
{
    public abcd(FileStream stream, string contentType) : base(stream, contentType)
    {
        DownloadCompleted = false;
    }

    public void Write(HttpResponseBase response)
    {
        WriteFile(response);
    }
}

Я всегда получаю счет со значением 0. Здесь выдается недопустимая операция Исключение: var count = FileStream.Read(buffer, 0, _bufferSize);

Пожалуйста, сообщите мне, как мне поступить.Я хочу знать, был ли файл успешно загружен.

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