Diana Oertel: Download - Problem mit der download.php einbindung

Hallo liebe Forumsmitglieder,
ich schreibe hier heute zum erstenmal eine Nachricht und hoffe das ich nicht all zu viel falsch mache. Habe gestern wohl schon was falsch gemacht, glaube ich.

Habe mich nun schon durch alle Archive stundenlang durchgekämpft, auch viele Artikel dazu gefunden, jedoch nicht schlau geworden. Hoffe sehr, das man noch einmal auf mein anliegen reagiert.

Nun zu meinem Problem:
Ich möchte einige pdf-Dateien zum download anbieten, mit der Aufforderung >>Ziel speichern unter ... <<. Dazu gleich die Info, es sollen keine xxx.zip Dateien sein.
Ich habe mir eine Datei namen`s download.php angelegt mit folgendem Inhalt:

<? $download = $_GET['down01']
$_GET['down02']
$_GET['down03']
$_GET['down04']
$_GET['down05']
$_GET['down06']
$_GET['down08']
$_GET['down08']; //$_GET['down01''down02''down03''down04''down05''down06''down07''down08'];
$basedir = "file://../seminare/download";
$filelist = array(
  $_GET['down01'] => "ernaerungsfragebogen.pdf",
  $_GET['down02'] => "ernaerungsprotokoll.pdf",
  $_GET['down03'] => "was-ist-nlp.pdf",
  $_GET['down04'] => "tcm-fakten.pdf",
  $_GET['down05'] => "quigong.pdf",
  $_GET['down06'] => "preisliste.pdf",
  $_GET['down07'] => "agb.pdf",
  $_GET['down08'] => "literaturliste.pdf");
if (!isset($filelist[$download]))
  die("Datei $download nicht vorhanden.");
$filename = sprintf("%s/%s", $basedir, $filelist[$download]);
header("Content-Type: application/octet-stream");
header("Content-type: application/force_download");
header("Cache-control: private");
$save_as_name = basename($filelist[$download]);
header("Content-Disposition: attachment; filename="$save_as_name"");
readfile($filename);
?>

Leitfaden: http://www.dclp-faq.de/q/q-datei-download.html

Anschließend habe ich in der HTML-Datei, in welcher der ausgewiesene Downloadlink beschrieben ist, folgendes im Quelltext eingetragen:

<td width="190" valign="top">
<p style="margin-left: 15px; margin-top: 0; margin-bottom: 0"><a onmouseover="Vorschau('bild1')" type="application/octet-stream" href="../download/download.php?$download=$_GET=['down01']">Ernährungsfragebogen</a></td>

Wenn ich nun diesen Link anklicke geht die download.php auf, und nicht wie gewünscht das Fenster <<Ziel speichern unter...>>.

Was muss ich nun noch eintragen und wo, damit aus meinem "Verweis" ein Download wird?
Wer hat noch einmal die Geduld mir zu helfen.

Mit freundlichen Grüßen Diana

  1. Hey,

    Wenn ich nun diesen Link anklicke geht die download.php auf, und nicht wie gewünscht das Fenster <<Ziel speichern unter...>>.

    Möglicherweise kannst/darfst du kein PHP verwenden?

    Und eigentlich ist das auch völlig unnötig, mit <a href="..." type="...">
    warst du doch schon auf der richtigen Spur. Schenk` dir einfach deine
    download.php (mit der wirklich unglücklichen Syntax), und notiere ganz
    gewöhnliche HTML-Verweise:

    <a href=".../download/...pdf" type="application/x.force-downl">...</a>

    Und das Download-Fenster kannst du erzwingen, in dem du deine PDF-Dateien
    in einen Ordner packst, in dem du eine ".htaccess" plazierst, die den
    Befehl "ForceType application/x.force-download" enthält (-> Archiv).
    Alternativ geht auch "RemoveType .pdf" und "AddType x.app/x.down .pdf"
    oder sowas in der Art.

    MsF,
    milky

    1. hallo milky
      vielen dank für deine antwort, will mal gleich antworten.

      Möglicherweise kannst/darfst du kein PHP verwenden?

      also die download.php in download.html ändern
      oder einfach weg lassen

      »»notiere ganz

      gewöhnliche HTML-Verweise:

      <a href=".../download/...pdf" type="application/x.force-downl">...</a>

      das ist nicht schwer, werde ich so eintragen

      Und das Download-Fenster kannst du erzwingen, in dem du deine PDF-Dateien
      in einen Ordner packst, in dem du eine ".htaccess" plazierst, die den
      Befehl "ForceType application/x.force-download" enthält (-> Archiv).
      Alternativ geht auch "RemoveType .pdf" und "AddType x.app/x.down .pdf"
      oder sowas in der Art.

      in diesem abschnitt fängt es an weh zu tun. habe darüber auch schon gelesen. von solcher .htaccess datei habe ich nicht die blasse ahnung und wollte somit dies umgehen. weder eiss ich wie das funktioniert oder wo man solche datei herbekommt. bin ein totaler grünschnabel. darum habe ich auch eine download.php angelegt.

      mit freundl. grüßen diana

      1. Hey Diana,

        also die download.php in download.html ändern
        oder einfach weg lassen

        Nicht benutzen. Löschen.

        in diesem abschnitt fängt es an weh zu tun. habe darüber auch schon gelesen. von solcher .htaccess datei habe ich nicht die blasse ahnung und wollte somit dies umgehen. weder eiss ich wie das funktioniert oder wo man solche datei herbekommt. bin ein totaler grünschnabel. darum habe ich auch eine download.php angelegt.

        Du legst eine Datei mit dem Namen "htaccess.txt" an (Texteditor nach
        Belieben) und lädst die dann mit einem FTP-Programm auf den Webserver.
        Dort benennst du die Datei um, in ".htaccess" - Punkt am Anfang,
        keine Dateiendung.

        In diese Datei schreibst du vorher hinein:

        RemoveType .pdf
           ForceType application/x.herunter-laden

        In SelfHtml steht auch etwas zur ".htaccess"-Datei. Und bei
        http://www.apache.org/ wird die Geschichte mit ForceType und der
        ".htaccess" auch erklärt.

        MsF,
        milky

        1. und nocheinmal ein hallo milky

          Nicht benutzen. Löschen.

          hab ich gemacht

          Du legst eine Datei mit dem Namen "htaccess.txt" an (Texteditor nach
          Belieben) und lädst die dann mit einem FTP-Programm auf den Webserver.
          Dort benennst du die Datei um, in ".htaccess" - Punkt am Anfang,
          keine Dateiendung.

          In diese Datei schreibst du vorher hinein:

          RemoveType .pdf
             ForceType application/x.herunter-laden

          das habe ich auch schon gemacht, genau so wie du es beschrieben hast. in der xxx.html wo die downloads angeboten werden habe ich folgendes eingetragen:
          <td><a onmouseover="Vorschau('bild1')" type="application/x.force-downl" href="../download/ernaerungsfragebogen.pdf">Ernährungsfragebogen</a></td>
          muss da noch was in den quelltext mit eingetragen werden?

          In SelfHtml steht auch etwas zur ".htaccess"-Datei. Und bei

          da habe ich die ganze zeit über gelesen, gelesen und nochmals gelesen. ein ganz schön großer urwald

          http://www.apache.org/ wird die Geschichte mit ForceType und der
          ".htaccess" auch erklärt.

          dort werde ich mich dann auch noch hinbegeben, um weiter zu kommen.

          FRAGE:
          funktioniert das ganze nur via server? als ich das auf meiner festplatte ausprobiert habe, da hat er mir die xxx.pdf angezeigt und nicht gefragt wohin er diese speichern soll?

          für deine viele mühe noch ein großes DANKESCHÖN

          mit freundl. grüßen diana

          1. Hey Diana,

            <td><a onmouseover="Vorschau('bild1')" type="application/x.force-downl" href="../download/ernaerungsfragebogen.pdf">Ernährungsfragebogen</a></td>
            muss da noch was in den quelltext mit eingetragen werden?

            Nö, das wars. Wenn dein Browser aber immer noch kein "Speichern unter..."
            anzeigt, dann stimmt etwas mit dem nicht (vermutlich ist es dann ja
            wohl der IE).

            http://www.apache.org/ wird die Geschichte mit ForceType [...]
            dort werde ich mich dann auch noch hinbegeben, um weiter zu kommen.

            Dort steht alles, was du wissen mußt. Eine deutschsprachige Dokumentation
            zum Webserver (Apache) kannst du dort auch herunterladen.

            funktioniert das ganze nur via server? als ich das auf meiner festplatte ausprobiert habe, da hat er mir die xxx.pdf angezeigt und nicht gefragt wohin er diese speichern soll?

            Nein. ".htaccess" funktioniert nicht auf deiner Festplatte. Alle
            Einstellungen in der ".htaccess" werden nur von einem Webserver
            verwendet.
            Wenn eine Datei von einem Webserver heruntergeladen wird,
            funktioniert das nämlich völlig anders, als wenn eine Datei von
            der Festplatte geladen wird (-> viele Zusatzinformationen
            werden übertragen).

            Sollte bei dir dann immernoch kein Download-Fenster erscheinen,
            kannst du die Dateien bestenfalls noch umbenennen (aus .pdf mach
            .bin). Der Nachteil wäre natürlich, daß die Datein dann auch mit
            der falschen Endung abgespeichert würden.
            Oder probiere einen besseren Browser aus: http://www.mozilla.org/,
            damit du siehst, daß normalerweise ein Downloadfenster kommen
            würde (- wenn sich dein IE verstellt hat).

            MsF,
            milky

            1. hey milky,

              so nun hab ich alles verstanden und wohl auch alles richtig gemacht. der große moment wird sich zeigen wenn alles auf dem server hochgeladen wird.

              unter der von dir angegebenen webadresse hatte ich schon leichte panik wegen dem engl. aber da werde ich mir das deutsche dann runterladen.

              ah so, ich arbeite unter linux und windows. windows für programme zum testen oder weil ich nicht alle programmme unter linux mag und linux selber wird ausschließlich zum surfen genutzt.
              also alle browser benutze ich für testeinstellungen.

              so, das soll`s gewesen sein. hab noch mal vielen dank für deine unterstützung und noch einen restlichen schönen sonntag.

              es grüßt diana