schildi: download mit php - probleme

hallo,

ich habe momentan einen download von dateien so realisiert:

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

wenn ich nun besonders große dateien, in meinem fall pdfs mit mehr als ca. 500kb runterladen will mit dieser methode, dann sagt mir acrobat nach öffnen des pdfs, dass die datei fehlerhaft sei. ob es wirklich an der größe liegt, weiss ich allerdings auch nicht genau.

aber das andere problem ist, dass, umso größer die datei ist, das warten auf den download dialog immer länger dauert.

wie kann ich das realisieren, dass ein "normales" downloadfenster mit download-fortschritt sofort aufgeht? auch sollten die pdfs, oder auch andere dateien dabei nicht beschädigt werden...

danke für jede hilfe!

  1. hallo,

    Hoi

    wie kann ich das realisieren, dass ein "normales" downloadfenster mit download-fortschritt sofort aufgeht? auch sollten die pdfs, oder auch andere dateien dabei nicht beschädigt werden...

    Also ehrlich gesagt, ich versteh dein problem nicht ganz. (Vielleicht weil keins da ist?).
    Wie waers mit einem direktverweis auf die datei?
    Oder auch ne meta redirection.

    Mfg Boty

    1. hallo,

      Hoi

      wie kann ich das realisieren, dass ein "normales" downloadfenster mit download-fortschritt sofort aufgeht? auch sollten die pdfs, oder auch andere dateien dabei nicht beschädigt werden...

      Also ehrlich gesagt, ich versteh dein problem nicht ganz. (Vielleicht weil keins da ist?).
      Wie waers mit einem direktverweis auf die datei?
      Oder auch ne meta redirection.

      Mfg Boty

      ich lese die dateien nicht aus dem webserver-htdocs-verzeichnis. sie sollen nicht direkt referenzierbar sein. ich lese daher die dateien über php ein und schicke sie dann an den browser.

      gibt es da über die richtigen headers keine lösung des problems?

      sonst müsste ich eine kopie der datei temporär zwischenspeichern, und dann als download ausgeben. das wäre halt aufwendiger..

      1. Hallo!

        Wenn du die Datei irgendwo anders gespeichert hast, kannt du die doch auch von da aus verlinken, oder? Oder liest du wirklich immer die gesamte Datei ein? Das dauert dann logischerweise ne Weile bei größeren Dateien. Also muss ja irgendwo die datei trotzdem sein. Und die kannst du mit einem ganz normalen <a href=""></a> zum Download anbieten.

        Nico

        1. Hallo!

          Wenn du die Datei irgendwo anders gespeichert hast, kannt du die doch auch von da aus verlinken, oder? Oder liest du wirklich immer die gesamte Datei ein? Das dauert dann logischerweise ne Weile bei größeren Dateien. Also muss ja irgendwo die datei trotzdem sein. Und die kannst du mit einem ganz normalen <a href=""></a> zum Download anbieten.

          Nico

          klar ist die datei irgendwo. nur ist irgendwo eben nicht im www verzeichnis des webservers.

          1. nur ist irgendwo eben nicht im www verzeichnis des webservers.

            Das kann ja auch irgendwo anders im Internet sein. Ich bezweifle, dass du immer, wenn das Script ausgeführt wird, auf deinen Rechner zugreifst. Und selbst dann kannst du die Datei verlinken.

            Nico