Dateidownload erzwingen

  • geschlossen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Dateidownload erzwingen

    Hallo zusammen,

    habe folgendes Problem:
    Ich will eine erzeugte Datei mit der Endung *.bsw, die in einem Verzeichnis gespeichert wird, mittels Downloadbutton über den Browser (egal welchen) herunterladen. Bisher wurde das mittels javascript gelöst:

    Quellcode

    1. <body onload="x_uhrzeit();window.setTimeout('document.form1.submit()',1000);window.location.href='{//downl}'">


    Das funktioniert beim IE 8 wunderbar. Nur bei den neueren Browsern wird die Datei direkt in einem Browserfenster geöffnet, statt heruntergeladen. Da aber kaum IE 8 genutzt wird, wäre es schon praktisch, wenn es auch in den neueren Browsern klappen würde.

    Hat jemand eine Idee, wie das zu lösen wäre?

    Grüße
    Pakito
    [FONT="Book Antiqua"][SIZE="4"]Auf der Mauer, auf der Lauer wartet schon die After Hour[/SIZE][/FONT]

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Pakito ()

  • Dateidownload erzwingen

    Normalerweise wird das per .htaccess als binärer Anhang gesendet [1]

    Im Downloadverzeichnis [!] wird also folgende .htaccess Datei erstellt:

    Quellcode

    1. <FilesMatch "\.(?i:bsw)$">
    2. ForceType application/octet-stream
    3. Header set Content-Disposition attachment
    4. </FilesMatch>


    Hinweise:

    Apache mod_headers muß aktiviert sein.
    Die AllowOverride Regel ist nicht none, ansonsten Server-Admin kontaktieren.

    -----------

    [1] Apacheserver
  • Hallo Dr. Who,

    danke für die fixe Antwort. Bei dem Server worauf das ganze läuft, handelt es sich um einen Linux Server.


    Ich muss evtl. weiter ausholen: Es besteht bisher die Möglichkeit in einer web basierenden Oberfläche Serienbriefe zu erzeugen. Das ganze geschieht mittels Cobol, was eine temporäre Datei auf dem Linuxserver erstellt, die mittels Javascript als Download bereitgestellt wird und nach dem Download sofort mit Word geöffnet wird, da *.bsw mit Word verknüpft ist.

    Das funktioniert mit dem IE 8 super aber alle aktuelleren Browser öffnen diese .bsw Datei einfach in einem neuen Tap.
    [FONT="Book Antiqua"][SIZE="4"]Auf der Mauer, auf der Lauer wartet schon die After Hour[/SIZE][/FONT]
  • Dateidownload erzwingen

    Infos zu Operating System, verfügbaren Modulen wie der Server-Software bekommst Du bspw. über Online-Dienste wie:

    Browserspy DK Web Server Information [nehme x an, das der httpd bei Dir ein Apache/2.x.x ist]

    -------

    Grundlegend: Du kannst auf jede beliebige Datei einen Verweis setzen. Es kann sich um Audio-, Video- Tabellenkalkulations-, CAD- oder eben auf BSW-Dateien handeln - alles kein Problem.

    Nur, was der Web-Browser des Anwenders mit den Dateien dann anfangen kann, ist die Frage.

    Wenn der Browser mit dem Dateityp gar nichts anfangen kann, sollte er dem Anwender einen Dialog anbieten, um zu entscheiden, was mit der Datei geschehen soll.

    Der Anwender sollte die Datei z.B. downloaden können.

    Das wiederum lässt sich -wie schon weiter oben im Thread angeführt- beim Apache-Server per .htaccess auch erzwingen.

    Beispielsweise wird eine über das Web aufgerufene Text-Datei [*.txt] immer direkt im Browser geöffnet werden, möchte ich aber den Download der Datei nun erzwingen:

    Quellcode

    1. <FilesMatch "\.(?i:txt)$">
    2. ForceType application/octet-stream
    3. Header set Content-Disposition attachment
    4. </FilesMatch>


    Sollte also funktionieren ...:-)

    Nuuur, wenn ich nun ein *.bsw File auf einem Server zum öffentlichen Download anbiete, sollte eigentlich per Default jeder Browser in etwa folgende Auswahlmöglichkeit anbieten:



    Eben Öffnen oder Speichern.

    Die Besonderheit beim Internet-Explorer ist die der ActiveX-Implementierung [ermöglicht das ausführen z.B von BSW-Dateien direkt im Browser[*], die jedoch nicht Web-Standard ist, sondern der Versuch, spezifische Eigenschaften des Win-OS für Web-Anwendungen nutzbar zu machen. Der 8er I-Explorer dürfte da ein Sonderfall sein - und wie erwünscht die Datei zum Download anbieten.

    So wie jeder vernünftige Browser.

    Lösung für den IE6-7 und 9-11: .htaccess-Regel setzen

    -------


    [*] sofern mit einer MS-Office Anwendung verknüpft

    Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von Dr. Who () aus folgendem Grund: Formatierung / Ergänzung / Typo

  • Hallo Dr. Who,

    das klingt alles richtig toll nur wo müsste ich diesen Code einpflegen? In die Html-Seite direkt oder in die Javascript-Datei oder in eine separate Datei?

    Grüße

    Pakito
    [FONT="Book Antiqua"][SIZE="4"]Auf der Mauer, auf der Lauer wartet schon die After Hour[/SIZE][/FONT]
  • Dateidownload erzwingen

    Beachte: Nur ein zum NCSA-Server kompatibler Server [1] "versteht" die Anweisungen einer .htaccess-Datei - und Yess -> ist eine separate Datei. Das erste Zeichen ist ein Punkt, wodurch sie auf Unix-Servern als versteckt gekennzeichnet ist - und sich auf Windows-Rechnern auch nicht so ohne Weiteres erzeugen lässt.



    Die .htaccess-Datei könnte ich Dir natürlich bei einem One-Click-Hoster hochladen [2] ... das Nächste wäre dann aber die Übertragung per FTP, wobei der Standard-Transfertyp ASCII, sowie der Dateityp txt zu beachten wäre.

    Btw. All diese Infos setzen voraus, das es sich dabei tatsächlich um einen httpd handelt, eben einen Server[3]
    [und keine alte;-) Linux-Kiste im lokalen Netzwerk ohne SSW] [4]

    -----------

    Vor Allem: Wie Du in Beitrag #3 schreibst, dient die Anwendung dazu, Serienbriefe zu erzeugen, wie ich annehmen darf [?] zu kommerziellem Zweck, und würde daher doch wirklich empfehlen, ein paar Euros in die Hand zu nehmen ... und das vor Ort von einem Fachmann in ein paar Minuten erledigen zu lassen, das gibt Sicherheit -> und der Laden läuft.

    Und es besteht zumindest die Möglichkeit, das so ein neuer Kontakt Dir dann mehr "einbringt" als Du so erstmal ausgibst.

    -----------

    [1] wie eben ein Apache

    [2] weiss nicht, ob ich Dir damit wirklich helfen würde

    [3] Du erschlägst ja, -vorsichtig formuliert- die Leser nicht gerade mit einer Masse an Infos

    [4] dann würde sich das vermutlich per Browser-Konfiguration lösen lassen [beträfe ja nur Dein lokales Netzwerk]

    .

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Dr. Who () aus folgendem Grund: Fußnote hinzugefügt

  • Hallo Dr. Who,

    vielen Dank für deine ausführliche Erklärung. Ich weiß, dass ich ziemlich spärlich mit Infos umgegangen bin aber das ganze ist für mich Neuland und ich musste mich da erst reinarbeiten.

    Jedenfalls hat deine Anleitung soweit geklappt. Die erzeugten .bsw Dateien werden mir jetzt als Download angeboten (IE 11 & Chrome, in Firefox nicht aber nicht schlimm).

    Jedoch hätte ich noch eine kleine Frage, die Google mir nicht beantworten konnte: Gibt es die Möglichkeit im IE die .bsw Datei ohne die lästige Abfrage "Öffnen" bzw. "Speichern" auf zu bekommen?
    Habe es bereits nach dieser Anleitung versucht, jedoch ohne Erfolg

    -------

    Haben es hinbekommen. Es gibt die Möglichkeit in der .htaccess Datei direkt festzulegen, mit welchem Programm bestimmte Änderungen geöffnet werden sollen. Damit kann man den Haken setzten "Immer öffnen mit" oder wie das bei den jeweiligen Browsern heißt.
    Somit ist uns nun endlich möglich den neusten IE zu benutzen.

    Vielen Dank Dr. Who :)
    [FONT="Book Antiqua"][SIZE="4"]Auf der Mauer, auf der Lauer wartet schon die After Hour[/SIZE][/FONT]

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Pakito () aus folgendem Grund: Lösung gefunden