2010-01-24 15 views
15

Zastanawiam się, czy można zrobić coś podobnegoCzy plik() w asp.net mvc zamknąć strumień?

public FileResult result() 
{ 
    Stream stream = new Stream(); 
    return File(stream,"text/html","bob.html"); 
} 

jeśli plik() by zamknąć strumienia dla Ciebie? Ponieważ starałem się umieścić "stream" w instrukcji using, ale zawsze dawało mi błąd mówiąc, że strumień został zamknięty.

public FileResult result() 
{ 
    using(Stream stream = new Stream()) 
    { 
     return File(stream,"text/html","bob.html"); 
    } 
} 
+1

Kiedy pojawia się błąd, że strumień jest zamknięty? –

+1

Po trafieniu zwraca plik(). Mówi, że strumień jest zamknięty. – chobo2

+0

To może pomóc. [Używanie wyciągu] (http://msdn.microsoft.com/en-us/library/yh598w02.aspx) – griegs

Odpowiedz

6

Jeśli używasz obiektu File wysłać plik wynikowy do pobrania bob.html to tak.

Wierzę, że wszystkie standardowe strumienie (OutputStream, FileStream, CryptoStream) będą próbowały przepłukać po zamknięciu lub utylizacji.

Istnieje szereg klas w ramach MVC, które implementują klasę podstawową FileResult.

System.Web.Mvc.FileResult 
System.Web.Mvc.FileContentResult 
System.Web.Mvc.FilePathResult 
System.Web.Mvc.FileStreamResult 
+1

W jakich innych sytuacjach używałbyś File(), inne podziękowania za przesłanie pliku do pobrania? – chobo2