Oskar K.: Download, anderer Namen wie gespeichert

Hallo Forum

mein Problem: Im Intranet können Dateien hochgeladen werden. Die Dateiinformationen werden in einer mySQL Datenbank abgelegt. Der Upload-Dateiname wird wird umbenannt in ID.<suffix> Das ist notwendig, weil eventuell die selbe Datei mehrmals hochgeladen wird.
Jetzt möchte ich bei einem Download aber wieder den ursprünglichen Namen anbieten.

Geht das?

vielen Dank schon mal

Grüssle ok

  1. Hi,

    Jetzt möchte ich bei einem Download aber wieder den ursprünglichen Namen anbieten.

    der Server muss einen Header der Art

    Content-Disposition: attachment; filename=bla.blub

    mitliefern. Siehe Archiv.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi Cheatah,

      Content-Disposition: attachment; filename=bla.blub

      das klappt solange, wie keine Parameterübergabe stattfindet.

      Geht:
      /progs/myUpload/download.php
      (such_id im prog definiert)

      Geht nicht:
      /progs/myUpload/download.php?such_id=215

      $datei = $daten[bez2].$daten[id].".".$var_typ;
      $save_as = $daten[bez1].".".$var_typ;

      header("Content-Type: application/octet-stream");
      header("Pragma: no-cache");
      header("Expires: 0");
      header("Content-Disposition: attachment; filename="$save_as"");
      readfile($datei);

      hat jemand noch einen Rat?

      grüssle ok

      1. Hi Oskar,

        $save_as = $daten[bez1].".".$var_typ;

        kannst Du in diese Zeile mal konkrete Werte für Deine diversen Variablen einsetzen?

        Ich kann nämlich nicht erkennen, was am Ende wirklich in ...

        header("Content-Disposition: attachment; filename="$save_as"");

        ... dieser Zeile stehen wird.

        Viele Grüße
              Michael

        --
        T'Pol: I apologize if I acted inappropriately.
        V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
        (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
        1. Hi,

          Ich kann nämlich nicht erkennen, was am Ende wirklich in ...

          header("Content-Disposition: attachment; filename="$save_as"");
          ... dieser Zeile stehen wird.

          mal ganz abgesehen davon sehe ich nur wenig Sinn darin, einen Dateinamen anzubieten, welcher Anführungszeichen enthält. Ich denke, dass die Filesysteme großer Teile der Zielgruppe keine derartigen Namen zulassen.

          Cheatah

          --
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. Hallo

            mal ganz abgesehen davon sehe ich nur wenig Sinn darin, einen Dateinamen anzubieten, welcher Anführungszeichen enthält. Ich denke, dass die Filesysteme großer Teile der Zielgruppe keine derartigen Namen zulassen.

            Cheatah

            sorry,
            der programm aufruf lautet z.b. :
            /progs/myUpload/download.php?such_id=21234

            aus der datenbank werden die variablen:
            $datei = "/archiv/2003/200303/20030319/21234.gif";
            $save_as = "oskar.gif";
            erzeugt, und es funktioniert nicht. (IE 5.5)
            "Kann nicht heruntergeladen werden, nicht vorhanden"

            definiere ich im script vor der datenbankabfrage:
            $such_id="21234";
            und rufe das programm ohne variablenübergabe auf:
            /progs/myUpload/download.php
            geht es

            header("Content-Type: application/octet-stream");
            header("Pragma: no-cache");
            header("Expires: 0");
            header("Content-Disposition: attachment; filename="$save_as"");
            readfile($datei);

            grüssle ok

            1. Hi,

              der programm aufruf lautet z.b. :

              [...]

              hm, das hilft leider nicht viel.

              und es funktioniert nicht. (IE 5.5)

              Diese Tatsache ist eher bedenklich denn beruhigend. Der IE ist im Zusammenhang mit HTTP derart falsch gepolt, dass man teilweise nur hoffen kann, dass es in ihm _nicht_ funktioniert.

              header("Content-Disposition: attachment; filename="$save_as"");

              Die Anführungszeichen sind immer noch falsch, und es ist immer noch interessant zu wissen, wie dieser Header (_nach_ PHP) de facto aussieht - nicht wie Du ihn Dir vorstellst.

              Cheatah

              --
              X-Will-Answer-Email: No
              X-Please-Search-Archive-First: Absolutely Yes