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
Barbara StreisandOriginal
2025-01-27 06:51:10811Durchsuche

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:

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

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

    <code class="language-csharp">private byte[] GetFileBytes(string filePath)
    {
        return System.IO.File.ReadAllBytes(filePath);
    }</code>

Beispielcode:

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

<code class="language-csharp">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);
}</code>

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!

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