Vor einigen Tagen wurde dem System die Download-Funktion der Dateiverwaltung hinzugefügt. Sie muss in der ASPX-Datei implementiert werden, um die Berechtigungen zu steuern.
Fügen Sie also den folgenden Code hinzu:
...
Response.ContentType = mime; //Entsprechender MIME-TYP
Response.AppendHeader("Content-Disposition", "attachment; filename="" +fileName + """);
Response.BinaryWrite(bytes);
Response.End();
...
Wenn fileName chinesische Zeichen enthält, wird der Dateiname beim Herunterladen und Speichern der Datei verstümmelt und muss vom Benutzer geändert werden, was meine ursprüngliche Absicht, den Standarddateinamen festzulegen, zunichte macht.
Lösung 1: URL-kodieren Sie den Dateinamen und ändern Sie den unterstrichenen Satz in
Response.AppendHeader("Content-Disposition", "attachment; filename="" + Server.UrlEncode(fileName) + """);
Das ist es.
Obwohl das Problem der verstümmelten chinesischen Zeichen gelöst wurde, gibt es noch ein weiteres Problem: Beim Testen wird der Name der heruntergeladenen und gespeicherten Datei manchmal zum Namen der Seite (.aspx), obwohl der Inhalt lokal heruntergeladen werden kann Name und Typ müssen geändert werden, was zu großer Verwirrung bei den Benutzern führt.
Es gibt eine andere Möglichkeit, die beiden oben genannten Probleme einfach zu lösen:
Lösung 2: Angenommen, die aktuelle URL ist http://localhost/download.aspx?id=123 und der Dateiname ist „Download.pdf“, wir müssen nur die Download-URL in http://localhost/download.aspx ändern /download .pdf?id=123 Der oben unterstrichene Code kann jedoch auskommentiert werden, Sie werden mit dem Ergebnis sehr zufrieden sein