Tanka: Datei-Download die 3.!

Ich hab jetzt noch mal was verändert, ber der Fehler ist immer noch da. Könnt ihr mir bitte, bitte helfen??
Danke Danke

Mein Skript sieht jetzt so aus:

<? //$download sei der Bezeichner für die zu ladende Datei
// etwa:
$download = $_GET['bild'];
// Dieses Verzeichnis liegt außerhalb des Document Root und
// ist nicht per URL erreichbar.
$basedir = "/data/members/free/tripod/de/x/x/x/xxxxx/htdocs/";
// Übersetzung von Download-Bezeichner in Dateinamen.
$filelist = array(
  "file1" => "bild.jpg"
  );
echo $file1;
// Einbruchsversuch abfangen.
if (!isset($filelist[$download]))
  die("Datei $download nicht vorhanden.");

// Vertrauenswürdigen Dateinamen basteln.
$filename = sprintf("%s/%s", $basedir, $filelist[$download]);

// Passenden Datentyp erzeugen.
header("Content-Type: application/octet-stream");

// Passenden Dateinamen im Download-Requester vorgeben,
// z. B. den Original-Dateinamen
$save_as_name = basename($filelist[$download]);
header("Content-Disposition: attachment; filename="$save_as_name"");

// Datei ausgeben.
readfile($filename);

?>
Alle erforderlichen Datein liegen jetzt mal im Stammverzecihnis, welches durch .htaccess geschützt ist. Von einer Datei get.php wird "bild.jpg" übertragen".
Trotzdem läuft es immer noch nicht. Könnt ihr mir sagen, wo der Fehler liegt??
Ich wäre euch sehr, sehr verbunden!!! :-)

  1. Hi Tanka,

    Zuerst mal eine Frage:

    was nützt folgende Codezeile:

    $filename = sprintf("%s/%s", $basedir, $filelist[$download]);

    Bzw. wäre es nicht einfacher, zu schreiben:

    $filename = "$basedir/$filelist[$download]";

    // Datei ausgeben.
    readfile($filename);

    readfile() liefert doch einen Rückgabewert, der zeigt, ob ein Fehler aufgetreten ist. Schau doch mal, ob der Rückgabewert false ist!

    Gruß,
    KonRad -

    --
    "Was Gott zusammengeführt hat ..." :: polithink.org -
    the politicultural e-zine :: http://www.polithink.org
    1. Hi Tanka,

      Zuerst mal eine Frage:

      was nützt folgende Codezeile:

      $filename = sprintf("%s/%s", $basedir, $filelist[$download]);

      Bzw. wäre es nicht einfacher, zu schreiben:

      $filename = "$basedir/$filelist[$download]";

      // Datei ausgeben.
      readfile($filename);

      readfile() liefert doch einen Rückgabewert, der zeigt, ob ein Fehler aufgetreten ist. Schau doch mal, ob der Rückgabewert false ist!

      Gruß,
      KonRad -

      Aber was nützt mir das? Der Fehler tritt ja schon viel früher auf! Er sagt ja schon zu Beginn Datei bild.jpg nicht vorhanden.
      Das Skript kommt von hier http://www.dclp-faq.de/q/q-datei-download.html

      1. Aber was nützt mir das? Der Fehler tritt ja schon viel früher auf!

        Und woher sollte man das wissen können..?

        Er sagt ja schon zu Beginn Datei bild.jpg nicht vorhanden.

        Meinst Du nicht, man könnte dir vielleicht besser und schneller helfen, wenn Du von anfang an mal die Fehlermeldung gepostet hättest..?
        Vielleicht hättest Du dann auch bereits eine Antwort bekommen - schon im alten Topics...

        Nunja, aber die Fehlermeldung scheint mir recht eindeutig zu sein. Ich würde mal alle Pfade und Dateinamen checken bzw. mir zur Sicherheit einmal ausgeben lassen. Evtl. wurde nicht bedacht, daß Pfad- und Filenamen auf Unixsystemen casesensitive reagieren. Vielleicht hast Du dich aber auch irgendwo vertippt?

        1. Noch mal ne grundsätzliche Frage zu diesem Skript: Das ist doch ein Downloadskript mit dem "Speichern unter..."-Fenster, odeR? Teilweise bekommen ich es nämlich hin, dass er mir das Bild dann doch anzeigt, nicht aber downlädt

          1. Das ist doch ein Downloadskript mit dem "Speichern unter..."-Fenster, odeR?

            Jein. Ein "Download-Script" ist es schon. Das heißt, das dort etwas an deinen Browser geschickt wird. zip-Files wird dir dein Browser wohl immer zum Donwload anbieten, weil er die nicht anzeigen kann.
            Ich glaube, hier liegt ein Denkfehler von dir.

            Teilweise bekommen ich es nämlich hin, dass er mir das Bild dann doch anzeigt, nicht aber downlädt

            Ja, Bilder kann dein Browser auch darstellen, die meisten zumindest. Wenn ein JPG an deinen Browser geschickt wird, dann wird er das wohl anzeigen. Ein EPS würde er dir normalerweise zum Download anbieten.
            Wenn Du eine Bilder zippt, bekommst Du sie immer zum Download.

            1. Hallo.

              Wenn ein JPG an deinen Browser geschickt wird, dann wird er das wohl anzeigen.

              Falsch. Kommt drauf an, welche Informationen Du im Header an den Browser schickst. Du kannst auch für ein JPG einen Speichern-Dialog erzwingen.

              Grüße aus Würzburg
              Julian

              --
              "machines will eat itself." Bau Dir Deinen eigenen Bot.
              http://www.hgb-leipzig.de:83/~franz/hyperportrait/testers/
  2. Hi Tanka,

    Warum denkst du, die </faq/>, und insbesondere diese Punkte </faq/#Q-06c> und </faq/#Q-11>, hätten für dich keine Gültigkeit und du müsstest sie nicht beachten?
    Mehrfachpostings sind hier nicht ohne Grund sehr unbeliebt, insbesondere, da dein letzter Thread noch ziemlich gut erreichbar in der Forumshauptdatei ist.
    Bleibe bitte in deinem Thread [pref:t=69170&m=397707] und unterlasse zukünftig solche Drängelpostings.

    Gruß

    Kurt

    --
    > Nein, ich beantworte keine Anfragen per e-mail.
    "Schoene Tage - nicht weinen, dass sie vergangen, sondern laecheln, dass sie gewesen."  (Rabindranath Tagore; ind. Philosoph, Dichter u. Maler; 1861-1941)
    http://elektro-dunzinger.at
    http://shop.elektro-dunzinger.at
    1. Hallo KD-one,

      Bleibe bitte in deinem Thread [pref:t=69170&m=397707] und unterlasse zukünftig solche Drängelpostings.

      Nein. Der Original-Thread ist [pref:t=69084&m=397706] und ebenfalls noch vorhanden.

      Beste Gruesse

      Jan

      1. Hi Jan R.,

        Nein. Der Original-Thread ist [pref:t=69084&m=397706] und ebenfalls noch vorhanden.

        Ja, den hatte ich vorher nicht gefunden.

        Gruß

        Kurt

        --
        > Nein, ich beantworte keine Anfragen per e-mail.
        "Feindseligkeit ist eine persoenliche Unabhaengigkeitserklaerung."  (Aldous Leonard Huxley; engl. Schriftsteller u. Kulturkritiker; 1894-1963)
        http://elektro-dunzinger.at
        http://shop.elektro-dunzinger.at
        1. Hi Jan R.,

          Nein. Der Original-Thread ist [pref:t=69084&m=397706] und ebenfalls noch vorhanden.

          Ja, den hatte ich vorher nicht gefunden.

          Gruß

          Kurt

          OK, ich gebe mich einsichtig. Es tut mir leid. Ehrlich. Es ist nur so, dass meine Anliegen ziemlich dringend ist und ich dachte, das würde hier untergehen. Ich bin ja erst neu hier, deswegen kannte ich das nicht. Tut mir leid

          1. Moin moin Tanka,

            OK, ich gebe mich einsichtig. Es tut mir leid. Ehrlich. Es ist nur so, dass meine Anliegen ziemlich dringend ist und ich dachte, das würde hier untergehen. Ich bin ja erst neu hier, deswegen kannte ich das nicht. Tut mir leid

            Wer entscheidet, ob  ein Thema/ Problem/ Thread wichtig ist? Du, mit deinen Mehrfach-postings?
            Das ist keine Ausrede oder Entschuldigung. Du versuchst aus deinem Problem ein Problem anderer zu machen. Denk mal darüber nach! >:-(

            bydey

          2. Hi,

            OK, ich gebe mich einsichtig. Es tut mir leid. Ehrlich. Es ist nur so, dass meine Anliegen ziemlich dringend ist und ich dachte, das würde hier untergehen. Ich bin ja erst neu hier, deswegen kannte ich das nicht. Tut mir leid

            das normale vorgehen der "Stammposter" ist, beim ersten aufruf die Froumshauptdatei von unten nach oben durchzuarbeiten. d.h. dass es eigentlich keinen unterschied macht wann du gepostet hast.
            Ganz im Gegenteil. Durch solche Draengelpostings werden viele Stammposter (die natuerlich auch die meiste hilfe bieten koennen) dir aus prinzip mal gar nicht antworten.

            Wenn du dich an die </faq/> haeltst, dann wirst du noch viele infos in diesem (meiner meinung nach das beste) forum bekommen!

            mfg
            -WebViper-

            --
            ss:| zu:] ls:/ fo:) de:> va:) ch:| sh:} n4:) rl:° br:& js:| ie:| fl:) mo:|
            Linux - life is too short for reboots!
            This is unix land.
            In quiet nights you can hear windows machines reboot.
          3. Hallo.

            ... und ich dachte, das würde hier untergehen.

            Ich würde es als durchaus üblich ansehen, dass jemand einen Thread noch etwas länger verfolgt, wenn er bei der Lösung eines Problems behilflich ist und sich eher ein Zweiergespräch ergab - zumindest solange bis er sich als erledigt erweist.
            Auf meine letzte Antwort gibt's bislang keine Reaktion. Der Thread geht also eher unter weil _Du_ ihn nicht mehr beachtest.

            Grüße aus Würzburg
            Julian

            --
            "machines will eat itself." Bau Dir Deinen eigenen Bot.
            http://www.hgb-leipzig.de:83/~franz/hyperportrait/testers/