Heim >Backend-Entwicklung >C++ >Wie lade ich mit Fileresultdateien in ASP.NET MVC Dateien herunter?

Wie lade ich mit Fileresultdateien in ASP.NET MVC Dateien herunter?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-27 06:46:09386Durchsuche

How to Download Files of Any Type in ASP.NET MVC Using FileResult?

Verwenden von FileResult von ASP.NET MVC für universelle Dateidownloads

ASP.NET MVCs FileResult bietet eine robuste Lösung für die Handhabung von Dateidownloads. Die Standardbeispiele konzentrieren sich jedoch häufig auf bestimmte Dateitypen, sodass die Frage, wie Downloads verschiedener Dateitypen verwaltet werden sollen, unbeantwortet bleibt. Dieser Artikel befasst sich mit dieser Herausforderung.

Das Problem: Herunterladen von Dateien unbekannter Typen

Das Hauptproblem besteht darin, Dateien herunterzuladen, deren Dateityp nicht vorgegeben ist. Standardmethoden können beim Umgang mit einer Vielzahl von Dateierweiterungen Probleme bereiten.

Die Lösung: Nutzung von FileResult und Octet-Stream MIME-Typ

Der Schlüssel zum Umgang mit verschiedenen Dateitypen liegt in der Verwendung der Klasse FileResult und der Angabe des MIME-Typs MediaTypeNames.Application.Octet. Dieser generische MIME-Typ gibt einen Oktett-Stream an, der für jeden Dateityp geeignet ist.

So können Sie das umsetzen:

<code class="language-csharp">public FileResult Download()
{
    byte[] fileBytes = System.IO.File.ReadAllBytes(@"c:\folder\myfile.ext");
    string fileName = "myfile.ext";
    return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}</code>

Dieser Codeausschnitt zeigt:

  • fileBytes: Enthält den Binärinhalt der Datei, der direkt aus dem Dateisystem gelesen wird.
  • MediaTypeNames.Application.Octet: Gibt den universellen Octet-Stream-MIME-Typ an.
  • fileName: Legt den gewünschten Dateinamen für den Download fest.

Verbesserte Dateipfad- und Namensverarbeitung

Um potenzielle Probleme mit der Pfadverkettung und Unterstrichen zu vermeiden, umfasst ein robusterer Ansatz separate Parameter für den Dateipfad und den Namen:

<code class="language-csharp">public FileResult Download(string filePath, string fileName)
{
    byte[] fileBytes = GetFile(filePath); // Helper function to read file bytes
    return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}

private byte[] GetFile(string filePath)
{
    return System.IO.File.ReadAllBytes(filePath);
}</code>

Diese überarbeitete Methode verbessert die Sicherheit und Lesbarkeit durch eine klare Trennung von Dateipfad und -name. Die Hilfsfunktion GetFile verbessert die Codeorganisation. Dieser Ansatz bietet eine flexiblere und sicherere Möglichkeit, Dateidownloads in ASP.NET MVC-Anwendungen zu verarbeiten.

Das obige ist der detaillierte Inhalt vonWie lade ich mit Fileresultdateien in ASP.NET MVC Dateien herunter?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn