Flask und URL file:///

Django, Flask, Bottle, WSGI, CGI…
Antworten
Fran(z)cisco
User
Beiträge: 4
Registriert: Montag 10. September 2018, 09:50

Hallo,

gibt es in Flask die Möglichkeit URL für locale FIles file:/// zu "verarbeiten" …

Datei: test3.html
<html>
<head>
</head>
<body>
<script>document.location ='file:///C:/Python/Beispiele/A5B37238.xml'</script>
<!--script>document.location ='http://www.spiegel.de'</script-->
</body>
</html

Wenn ich diese html-Datei über Flask aufrufe, bleibt die Seite mit der document.location file:// leer,
die document.location http:// funktioniert dagegen.

Irgendwie scheint Flask die URL file:// zu ignorieren.
Gibt es in Flask eine Möglichkeit die URL file:// zu aktivieren ???


Mit freundlichen Grüßen,
Mühlbauer Franz
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

Das hat nichts mit Flask zu tun, sondern mit Deinem Browser, der es einfach nicht zuläßt, dass fremde Seiten beliebige Dateien auf Deinem Computer zu lesen.
Fran(z)cisco
User
Beiträge: 4
Registriert: Montag 10. September 2018, 09:50

Hallo Sirius,
danke für die Antwort ..

Aber wenn ich die URL direkt im Browser eingebe, wird sie angezeigt …
file:///C:/Python/Beispiele/A5B37238.xml

Mit Edge, IE, Chrome und Firefox getestet ...

???

Gruß,
Fran(z)cisco
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Natuerlich, weil DU als BENUTZER dann diese Entscheidung getroffen hast.

Wenn ich dich auf meine Webseite locke, und dann einfach wild Dateien von deiner Festplatte runterlade, weil ich bekannte Pfade in Tags in meiner Seite reinschreibe, dann findest du das sicher auch nicht so doll. Darum geht das nicht.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Noch ein Nachtrag: wenn dein HTML von Flask ausgeliefert wird, dann besteht die Loesung fuer dein Problem darin, auch die Datei, die du referenzieren willst, per Flask auszuliefern. Also einfach eine Route anzulegen, und die liest dann eben deine Datei ein, und gibt sie zurueck.

Da steht dann im HTML

<script>document.location ='/superduperscript'</script>

und diese Route muss Flask kennen und ausliefern.
Fran(z)cisco
User
Beiträge: 4
Registriert: Montag 10. September 2018, 09:50

Hallo __deets__ ,

du hast recht … mit der file:/// bin ich "auf der Leitung" gestanden …
Funktioniert natürlich nur local bei mir am Laptop, da 1) Rechte gegeben und 2) Server und Client auf localhost laufen …

Gebe die XML jetzt mit Hilfe von …

send_file(_fzg_auftrag_file, mimetype="text/xml", as_attachment=False)

… in einem neuen Browser-Fenster aus

Gruß,
Fran(z)cisco
Antworten