Verstecken Sie den physischen Pfad von einer Datei herunterzuladen ASP.NET
Ich wollen für einige Benutzer laden Sie einige Dateien von meiner website und ich will Sie nicht, sehen Sie den physikalischen Pfad der Download-Datei.
Zog ich die Dateien in einen Ordner außerhalb des web-Ordners und verwenden Sie Response.WriteFile(Dateipfad), um Sie herunterzuladen. diese helfen, mich zu verstecken Weg, aber diese Methode nicht unterstützt download fortsetzen, das ich es wirklich will.
Also, was Methode, die Sie empfehlen ich verwenden?
- Wie denken Sie, Sie wissen, du bist Weg? Wo, an die öffentlichkeit, setzen Sie Ihren physischen Pfad?
- Ich don ' T setzen Sie den physischen Pfad, aber Sie wissen, wenn Sie eine Datei herunterladen, mit einem download-manager wie IDM, Ihre physischen Pfad ausgesetzt sein wird. aber wie gesagt, ich bin mit 'Antwort.WriteFile' verbirgt die physische Pfad der Datei, aber es ist nicht resume Unterstützung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen Sie ein temporäres Verzeichnis und kopieren Sie die Datei in es. Sie könnten sogar benennen Sie die Datei als etwas anderes, so dass es nicht 'guessable'.
Ich gehe davon aus, dass, wenn Sie können die Datei herunterladen, die Inhalte des es sind für die jeweilige person daher gibt es kein Problem, dass Benutzer wissen, der direkte link. Andere werden nicht in der Lage sein, zu erraten, die zufällige Verzeichnis und/oder Dateinamen.
Diese ziemlich viel die gleiche Prozess, den wir verwenden für den export von Informationen aus unserem system.
Es ist ganz einfach, ich habe dies getan, bevor.
Nur verstecken Sie die "input Datei" Kontrolle, so dass es verborgen ist, die auf der Benutzeroberfläche, erstellen Sie dann eine Schaltfläche click-Ereignis löst das Ereignis click aus der "input-Datei" control.
Dann können Sie auch mit javascript (in meinem Fall ist es JQuery), zu den Namen der durchsuchten Datei in eine textbox, die den Namen der Datei.
Daher ist die Datei Weg ist verborgen vor dem UI.
Ich würde das implementieren einer file-handler (.ashx-Datei) dient, die Dateien basierend auf irgendeine Art von id oder Namen in den querystring aus und senden Sie es wie diese:
asp.net ashx-handler auffordert download statt Anzeige der Datei
Hier ist der beste Ansatz: