Manne: Download starten

hi Forumler

ich muss leider nochmal auf mein problem zurueckkommen,
da ich erst heute den tip von Cheatah ausprobieren konnte.

filedownload starten mit cgi-script:

print "Content-type: application/zip\n";
print "Content-length: $filesize\n";
print "Content-Disposition: filename=$name\n\n";

open(READ,$datei);
binmode READ;
binmode STDOUT;
while ($line=<READ>) { print $line; }
close(READ);

die datei wird im browserfenster angezeigt
lasse ich "binmode STDOUT;" weg, oeffnet der browser
tatsaechlich den download-dialog.
die uebertragene datei ist natuerlich schrott.

liegt's vieleicht an meiner serversoftware?
ich setzte offline den sambarserver ein.

mfg

manne

  1. Hi,

    ich kann's mir zwar nicht richtig erklären, würde aber als nächstes mal folgendes probieren:

    open(READ,$datei);
    binmode READ;
    binmode STDOUT;
    print "Content-type: application/zip\n";
    print "Content-length: $filesize\n";
    print "Content-Disposition: filename=$name\n\n";
    while ($line=<READ>) { print $line; }
    close(READ);

    Cheatah

    1. Hi, Cheatah

      das war's danke

      Ich versteh' nur den Unterschied zu der Variante nicht
      (so hatte ich's mal probiert)

      binmode STDOUT;
      print "Content-type: application/zip\n";
      print "Content-length: $filesize\n";
      print "Content-Disposition: filename=$name\n\n";
      open(READ,$datei);
      binmode READ;
      while ($line=<READ>) { print $line; }
      close(READ);

      Naja, ich bin Perlanfaenger. Ich werd's schon noch
      lernen.

      Nochmals Danke!!

      gruss
        Manne

      1. Hallo!

        Ich versteh' nur den Unterschied zu der Variante nicht

        Mmh, das ist jetzt mal ne reine Spekulation, bin da auch nicht sehr auskennend:
        Vielleicht verwirft das Umschalten von STDOUT auf binmode die vorher gemachten Ausgaben in irgendeiner Weise. Das haette zur Folge, dass Du praktisch keinen Content-Type rausgeschrieben hast. Normalerweise bringt der Webserver dann eine Fehlermeldung (unvollstaendige Header oder so), aber vielleicht verwendest Du einen, der so tolerant ist, dass er stattdessen einfach text/html an den Browser sendet. Dieser Mime-Type veranlasst den Browser dann natuerlich, die Daten so darstellen zu wollen, wie eine HTML-Datei. Probier doch mal, statt der ZIP-Datei eine HTML zurueckzuschicken. Wenn meine Vermutung stimmt, muesste die einwandfrei vom Browser angezeigt werden.

        Calocybe