2016-07-08 5 views
0

Ich habe dies schon einmal getan, aber ich erinnere mich nicht, wie. Es gibt einen Weg in einer IIS-Anwendung (C#), in dem Sie festlegen können, dass alle Anforderungen für eine "Datei" von einer bestimmten URL an eine Methode gesendet werden sollen. Und diese Methode kann dann die "Datei" in der Antwort setzen.IIS (C#) sende Dateianforderung an eine Anfrage-Methode

Es ist eine Möglichkeit zu vermeiden, temporäre Dateien auf Datenträger zu schreiben und sie stattdessen im Arbeitsspeicher zu halten, zu überprüfen, dass die Anforderung für diese Datei vom authentifizierten Benutzer stammt, und dann die im Speicher enthaltene Datei in die Antwort aufzunehmen.

Antwort

0

Was Sie suchen, ist FileResult anstelle von ActionResult von der Steuerung (vorausgesetzt, ASP.NET MVC oder Web API hier); genauer gesagt, Sie wollen wahrscheinlich eine FileStreamResult mit den Daten in einem MemoryStream oder FileStream gespeichert; oder eine FileContentResult mit einem binären Array.

public FileResult GetFile(...) 
{ 
    var stream = new MemoryStream(); 

    // Assign the data here 
    // ... 

    return new FileStreamResult(stream, "application/octet-stream") 
    { 
     FileDownloadName = "MyFile.dat", 
    }; 
}