Andreas: header: application/octet-stream

Hi,

also folgendes, ich lass mir ein zip file on the fly erstellen, welches ich dann direkt zum download angeboten werden soll. Das erstellen und so funktioniert ohne probleme, und auch der download haut hin - lokal bei mir auf dem rechner! - aber nicht mehr auf meinem online webspace.

Online bietet er zum download nicht das file "beispiel.zip", sondern das skript "skript.php?var=123" zum download an...

habe folgende header für den download:

header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=$newname[0].zip");
readfile("pics/".$_SESSION['projektID']."/".$newname[0].".zip");

wie gesagt lokal funktionierts super...komm auch mit googeln nicht recht weiter...

danke für jeden guten tipp ;-)

  1. Hi,

    mach da mal ne Leerzeile rein am Ende des headers:

    habe folgende header für den download:

    header("Content-Type: application/octet-stream");

    hier 1x \n

    header("Content-Disposition: attachment; filename=$newname[0].zip");

    hier 2x \n\n

    Gruss, Rolf

    --
    KnowHow veröffentlichen statt Patentieren!
    1. header("Content-Type: application/octet-stream\n");

      header("Content-Disposition: attachment; filename=$newname[0].zip\n\n");

      readfile("pics/".$_SESSION['projektID']."/".$newname[0].".zip");

      Hi Rolf,

      bringt leider nicht wirklich was, das angebotene file ist immer noch das skript;-(

    2. Hi Rolf!

      header("Content-Type: application/octet-stream");
      hier 1x \n
      header("Content-Disposition: attachment; filename=$newname[0].zip");
      hier 2x \n\n

      Hier gehts um PHP, da kümmert sich die header() Funktion selber darum ;-)

      Grüße
      Andreas

      --
      SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/
      1. hi Andreas,

        Hier gehts um PHP, da kümmert sich die header() Funktion selber darum ;-)

        Hrmm, wussti noch nicht...

        Hab trotzdem nochwas:
        http://perlbase.xwolf.de/cgi-bin/perlbase.cgi?display=10&id=4

        Bitte mal testen.

        Gruss, Rolf

        --
        KnowHow veröffentlichen statt Patentieren!
        1. Hi!

          Hab trotzdem nochwas:
          http://perlbase.xwolf.de/cgi-bin/perlbase.cgi?display=10&id=4

          Ja, das hat durchaus Auswirkungen, das beste ist wenn am Ende wirklich ein Dateiname steht, sowas wie 123.zip.

          Versuch mal den Aufruf wie folgt:

          script.php/123.zip

          und dann lass Dir $name = basename($_SERVER["PATH_INFO"]); ausgeben.

          Da sollte dann "123.zip" drinstehen. Das kannst Du wiederum splitten, z.B.

          $id = substr($name, 0, -4); // $id = 123

          Sonst kannst Du mal http://pear.php.net/manual/en/package.http.http-download.intro.php versuchen, das setze ich meist ein.

          Grüße
          Andreas

          --
          SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/
        2. Hab trotzdem nochwas:
          http://perlbase.xwolf.de/cgi-bin/perlbase.cgi?display=10&id=4

          Bitte mal testen.

          Gruss, Rolf

          hi, also ich die variablen übergabe zu ändern, weis nicht so recht, ich verarbeite ja die variable davor noch, ich übergebe auch nihct den dateinamen, sondern nur einen bildnamen, dieses wird dann eben on the fly gezipped...

          hab grad noch mal getestet, mit NS funktionnierts - also hängts echt nur am IE - in soweit hast du recht

          1. Hi!

            hi, also ich die variablen übergabe zu ändern, weis nicht so recht, ich verarbeite ja die variable davor noch, ich übergebe auch nihct den dateinamen, sondern nur einen bildnamen, dieses wird dann eben on the fly gezipped...

            Hm, was haben die Bilder denn für ein Format? Also jpeg, gif oder png Bilder per zip zu komprimieren ist eigentlich ziemlich unnötig.

            Grüße
            Andreas

            --
            SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/
            1. Hm, was haben die Bilder denn für ein Format? Also jpeg, gif oder png Bilder per zip zu komprimieren ist eigentlich ziemlich unnötig.

              sind jpeg, habs schon zuerst versucht direkt die bilder anzubieten, allerdings tritt da das gleiche problem auf...

              auch die methode mit basename hilft nicht wirklich weiter, dann wird eben dieser wert als download angeboten - ohne dass der datei typ erkannt wird - also auch nix ;-(

              1. Hi!

                auch die methode mit basename hilft nicht wirklich weiter, dann wird eben dieser wert als download angeboten - ohne dass der datei typ erkannt wird - also auch nix ;-(

                Du bist nicht der erste mit dem Problem, guck Dir mal die Kommentare bei  http://de3.php.net/header an, da stehen noch einige Ideen. Sonst würde ich mir mal das genannte PEAR-Modul ansehen.

                Du kannst Dir mit Hilfe der Mozilla/Firefox-Erweiterung "Live-Header" die HTTP-Header ansehen, die vom Browser und vom Server gesendet werden. Vergleiche einmal Deine Variante mit einer Seite, wo genau das klappt. Guck Dir an wie sich die Header unterscheiden und passe Dein Script an.
                Ich weiß nicht ob Live-Header mit Firefox 0.9 funktioniert, mit 0.8 in jedem Fall, sonst  kannst Du es z.B. auch mit Ethereal ansehen.

                Firefox Extension: http://texturizer.net/firefox/extensions/#livehttpheaders

                Ethereal: http://www.ethereal.com/download.html

                Grüße
                Andreas

                --
                SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/
  2. Hallo,

    header("Content-Type: application/octet-stream");
    header("Content-Disposition: attachment; filename=$newname[0].zip");

    header("Content-Type: application/octet-stream");
     header("Content-Disposition: attachment; filename="$n"");

    Das gefällt dem IE auch. ;)