Heim > Backend-Entwicklung > C++ > Wie behandle ich Datei -Downloads unbekannter Typen in ASP.NET MVC mit Fileresult?

Wie behandle ich Datei -Downloads unbekannter Typen in ASP.NET MVC mit Fileresult?

Barbara Streisand
Freigeben: 2025-01-27 06:51:10
Original
840 Leute haben es durchsucht

How to Handle File Downloads of Unknown Types in ASP.NET MVC using FileResult?

Verwenden von FileResult in ASP.NET MVC zum Herunterladen von Dateien unbekannten Typs

Beim Aktivieren von Dateidownloads in ASP.NET MVC wird im Allgemeinen empfohlen, FileResult als bevorzugte Methode zu verwenden. Die meisten Beispiele konzentrieren sich jedoch auf das Herunterladen von Bilddateien mit einem bestimmten Inhaltstyp (z. B. „image/jpeg“).

Wenn der Dateityp unbekannt ist und Sie Benutzern das Herunterladen verschiedener Dateiformate ermöglichen möchten, tritt ein Problem auf: Der heruntergeladene Dateiname ist möglicherweise mit Unterstrichen aus dem Dateipfad verkettet, was möglicherweise nicht ideal ist. Außerdem ziehen es einige Leute vor, ein FileResult zurückzugeben, anstatt eine benutzerdefinierte Klasse wie „BinaryContentResult“ zu verwenden.

Empfohlene Methode

Um diese Probleme zu beheben und den richtigen Download-Mechanismus zu implementieren, befolgen Sie bitte diese Schritte:

  1. Verwenden Sie den generischen Oktett-Stream-MIME-Typ:

    Geben Sie für Dateien unbekannten Typs den generischen MIME-Typ „Application/Octet-Stream“ an, um anzugeben, dass die Datei ein beliebiges Format haben kann.

  2. Download-Vorgang definieren:

    Erstellen Sie in Ihrem MVC-Controller eine Aktionsmethode zur Abwicklung des Dateidownloads, zum Beispiel:

    public FileResult Download(string filePath, string fileName)
    {
        // 从指定位置或流获取文件字节
        byte[] fileBytes = GetFileBytes(filePath);
    
        // 使用指定的字节、MIME类型和文件名返回FileResult
        return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
    }
    Nach dem Login kopieren
  3. Dateibytes abrufen:

    Implementieren Sie eine Methode, die Dateibytes basierend auf einem bereitgestellten Dateipfad oder auf andere Weise abruft, zum Beispiel:

    private byte[] GetFileBytes(string filePath)
    {
        return System.IO.File.ReadAllBytes(filePath);
    }
    Nach dem Login kopieren

Beispielcode:

Hier ist ein Beispielcode-Snippet, das den Ansatz demonstriert:

public ActionResult 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);
}
Nach dem Login kopieren

Mit dieser Methode können Sie jeden Dateityp herunterladen und dabei den gewünschten Dateinamen beibehalten und den entsprechenden MIME-Typ in Ihrer ASP.NET MVC-Anwendung verwenden.

Das obige ist der detaillierte Inhalt vonWie behandle ich Datei -Downloads unbekannter Typen in ASP.NET MVC mit Fileresult?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage