Ответ 1
FileStreamResult
сделает это за вас. Когда вы сомневаетесь, всегда проверяйте код, потому что код никогда не лежит, и поскольку ASP.NET MVC является открытым исходным кодом, ему еще проще просматривать код.
Быстрый поиск в Google для FileStreamResult.cs позволяет проверить, что в методе WriteFile
поток правильно размещен с помощью инструкции using
. (каламбур не предназначен)
protected override void WriteFile(HttpResponseBase response) {
// grab chunks of data and write to the output stream
Stream outputStream = response.OutputStream;
using (FileStream) {
byte[] buffer = new byte[_bufferSize];
while (true) {
int bytesRead = FileStream.Read(buffer, 0, _bufferSize);
if (bytesRead == 0) {
// no more data
break;
}
outputStream.Write(buffer, 0, bytesRead);
}
}
}