File-Download mit PHP

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • File-Download mit PHP

    Hallo @ all

    Ich habe folgendes Problem.
    Ich versuche ein zip-Datei von einem anderen Server per fopen herunterzuladen.
    Dies macht das Script auch ohne Fehlermeldung aber es werden nur ca 16kb übertragen, obwohl die Datei 532kb hat.

    Dies ist nur ein kleines Testscript für weitere Funktionen.

    PHP-Code:
    $link="http://www.thilo-weberstetter.de/testfile.zip"
    $fh=fopen($link,"rb");
    if (
    $fh) {
      
    $file=fread($fh,1000000);
      
    fclose($fh);

      
    $fh=fopen("file/testfile.zip","wb");
      if (
    $fh) {
        
    fwrite($fh,$file);
        
    fclose($fh);
      }

    Schonmal danke im Vorraus
    Wir haben alle mal angefangen!

  • #2
    Wer lesen kann, ist klar im Vorteil:

    fread() liest length Bytes vom Dateizeiger handle. Das Lesen wird beendet, wenn length Bytes gelesen oder EOF (end of file bzw. Dateiende) erreicht wurde (was eben früher zutrifft).

    Kommentar


    • #3
      Ich hab die Länge aber auf 1MB stehen.
      Das müsste also mehr als ausreichen
      Wir haben alle mal angefangen!

      Kommentar


      • #4
        When reading from anything that is not a regular local file, such as streams returned when reading remote files or from popen() and fsockopen(), reading will stop after a packet is available. This means that you should collect the data together in chunks as shown in the examples below.
        Quelle: http://de2.php.net/manual/en/function.fread.php

        Da steht auch eine funktionsfähige Alternative
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Der letzte Tip war genau der richtige. Danke

          Das ganze sieht nun wie folgt aus:

          PHP-Code:
          $link="http://www.thilo-weberstetter.de/testfile.zip"
          $fh=fopen($link,"rb");
          if (
          $fh) {
            
          $file='';
            while (!
          feof($fh)) {
              
          $file.=fread($fh,8192);
            }
            
          fclose($fh);

            
          $fh=fopen("file/testfile.zip","wb");
            if (
          $fh) {
              
          fwrite($fh,$file);
              
          fclose($fh);
            }

          Wir haben alle mal angefangen!

          Kommentar

          Lädt...
          X