Downloadbereich: Datei nach Infos abfragen

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

  • Downloadbereich: Datei nach Infos abfragen

    Hallo,

    ich habe mir einen Downloadbereich geschrieben, was soweit auch ganz gut funktioniert.

    Die Datei wird nach der größte abgefragt, dadurch kann man dann halt anzeigen lassen, ob sie Online oder Offline ist.

    Nur bei ftp://... gehts nicht. Was müsste ich denn an meinem Ding anders machen, damit es geht?

    Sie soll mir halt die Größe der Datei wiedergeben, damit wäre ja mein Problem gelöst, ist die Datei größer als 0 kb, is der Download verfügbar.

    PHP-Code:
    function truncate_decimals ($num) {
       
    $shift pow(102);
       return ((
    floor($num $shift)) / $shift);
    }

    function 
    compute_size ($byte_number) {
       if (
    $byte_number 1024) {
           return 
    $byte_number.' bytes';
       } elseif (
    $byte_number 1048576) {
           return 
    truncate_decimals($byte_number / (1024)).' KB';
       } elseif (
    $byte_number 1073741824) {
           return 
    truncate_decimals($byte_number / (1048576)).' MB';
       } elseif (
    $byte_number 1099511627776) {
           return 
    truncate_decimals($byte_number / (1073741824)).' GB';
       }
    }

    function 
    remote_filesize($uri){
       
    $url_p parse_url ($uri);
       
    $host $url_p['host'];
       if(isset (
    $url_p['port']))
         
    $remote_port $url_p['port'];
       else
         
    $remote_port 80;

       
    $fp = @fsockopen ($host$remote_port);
       if(!
    $fp)
         return 
    0;
       else
       {
         
    fputs($fp'HEAD '.$uri." HTTP/1.1\r\n");
         
    fputs($fp'HOST: '.$host."\r\n");
         
    fputs($fp"Connection: close\r\n\r\n");
         
    $headers '';
         while (!
    feof ($fp))
           
    $headers .= fgets ($fp128);
       }
       
    fclose ($fp);

       if (
    preg_match('/Content-Length:\s([0-9].+?)\s/'$headers$matches))
         return 
    $matches[1];
       else
         return 
    0;
      } 

  • #2
    Kennt das FTP-Protokoll denn HEAD und Co?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Re: Downloadbereich: Datei nach Infos abfragen

      Original geschrieben von VeschperMojo
      Die Datei wird nach der größte abgefragt, dadurch kann man dann halt anzeigen lassen, ob sie Online oder Offline ist.
      ist das irgendein code - oder soll dieser satz auch in herkömmlichem deutsch irgendeinen sinn ergeben?
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        decodiert bedeutet das sowas wie:
        Weil ich die Dateigröße überprüfe kann ich bei einem fehlschlag dieser Überprüfung sagen, dass die Datei offline ist. Ist die Überprüfung erfolgreich, ist sie online.


        Oder so ähnlich
        Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
        var_dump(), print_r(), debug_backtrace und echo.
        Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
        Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
        Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

        Kommentar

        Lädt...
        X