ilch Forum » Allgemein » HTML, PHP, SQL,... » ftp ordner grösse

Geschlossen
  1. #1
    User Pic
    Vips Mitglied
    Registriert seit
    19.06.2008
    Beiträge
    238
    Beitragswertungen
    0 Beitragspunkte
    server

    ich such eine funktion, womit man die grösse eines ftp ordners ausgeben kann falls das überhaupt möglich ist

    thx im vorraus
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    Möglich ist es schon wir hatten das Thema schon einmal, sofern du dich erinnern kannst. Aber ich Rate davon ganz erlich ab.

    Das Script sollte auch noch im alten Thema drinne sein wo du von den files die Dateigrößer ermitteln wolltest so das der ganze FTP abgefragt und zusammen rechnet.

    Mann müsst jedes file einzeln vermutlich abfragen und die dan zusammen reschen.

    schau mal hier externer Link


    Zuletzt modifiziert von Balthazar3k am 18.04.2009 - 17:20:12
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Vips Mitglied
    Registriert seit
    19.06.2008
    Beiträge
    238
    Beitragswertungen
    0 Beitragspunkte
    ja weis ich und mit einzel abfragen das frisst zuviel performens
    noch was anderes kann man den freien speicherplatz vom ftp irgentwie abfragen


    Zuletzt modifiziert von Vips am 18.04.2009 - 17:38:34
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Chapter Hall Of Fame
    Registriert seit
    21.10.2007
    Beiträge
    5.951
    Beitragswertungen
    229 Beitragspunkte
    das könntest du aus rechnen lassen. einfach den belegten speicherplatz auslesen, und vom gesammten speicherplatz abziehen. wie hoch der gesammte ist, kannst du ja bei deinem hoster nachschauen.
    Spamming, sinnlose Beiträge, Pushing, Doppelposting und Werbung sind verboten
    externer Link
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    was iss den das für ne logik wenn du weist wieviel drauf ist brauchst du das doch nicht mehr vom gesamt abziehen ?!:)

    informier dich mal über ftp_site() ob es da was für gibt. mit dieser funktion kann man comandos senden.

    anderer seitz hast du doch die datei größen vom ftp in der db gespeichert für jedes file, die müsste man wieder auslesen uns zusammen reschnen ^^

    ich kann Morgen mal schauenw as ich machen kann, habe nichts zum coden hier, kein editor und kein ilch zum schnuppern aufen arbeits pc


    Zuletzt modifiziert von Balthazar3k am 19.04.2009 - 16:06:34
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Chapter Hall Of Fame
    Registriert seit
    21.10.2007
    Beiträge
    5.951
    Beitragswertungen
    229 Beitragspunkte
    ich meinte damit, wie hoch der gesamtspeicherplatz ist kann er nachlesen. kommt halt auf sein paket an...
    Spamming, sinnlose Beiträge, Pushing, Doppelposting und Werbung sind verboten
    externer Link
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    ergab halt kein sin dein post. wenn man das so machen würde wie du gesagt hast würde sein freier speicherplatz ermittelt, er will aber wissen wieviel in einem "Ordner" ist.

    wie gesagt er hat in der ic1_downs/downloads eine splate "size" das ding dabei ist ich habe ihm das so gecodet das bytes zu mb oder auch gb wird also müsste man das wieder auf bytes zurück reschnen und dann wieder zusammen oder den code ändern der es in die datebnak speichert was auch am sinvollsten klingt und anschließen mit MySQL SUM zusammen reschen kann.
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Vips Mitglied
    Registriert seit
    19.06.2008
    Beiträge
    238
    Beitragswertungen
    0 Beitragspunkte
    thx an euch

    hab es gelöst mit ftp_nlist wie Balthazar3k gesagt hat, da der ordner maximal 10GB gross sein kann und das dauer maximal 15 sec bei mir, damit müssen die leute halt leben.

    oder gibt es da noch was schnelleres

    ps:war gedacht um den noch freien upload speicherplatz zu ermitteln
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Naja man kann das Ergebnis ja auch speichern und nur einmal alle 24 Stunden aktualisieren z.B.

    Oder immer dann, wenn was hochgeladen wurde, je nachdem, wie das gemacht wird.


    Zuletzt modifiziert von Mairu am 19.04.2009 - 17:36:55
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Vips Mitglied
    Registriert seit
    19.06.2008
    Beiträge
    238
    Beitragswertungen
    0 Beitragspunkte
    @mairu

    wie könnte man das machen das es sich nach jedem hochladen aktuallisiert
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Naja wenn das hochladen über ein FTP Programm passiert, dann nicht wirklich, man könnte natürlich eine Datei auf dem FTP haben, in der die Größe steht und die dann beim Hochladen manuell gelöscht wird, wenn das Hochladen allerdings über ein Skript geschehen sollte, ist es einfach.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    Vips Mitglied
    Registriert seit
    19.06.2008
    Beiträge
    238
    Beitragswertungen
    0 Beitragspunkte
    mein script:
    <?php
    
    ########################################
    ## Einstellungen
    $ftp_server = "";
    $port ="21";
    $user = "";
    $password = "";
    $eSer = "./";
    ## Wo raufladen
    ## Nur einstellen wenn wo anders geuppt werden soll als in das Verzeichniss auf das der FTP
    ## Account eingestellt wurde
    $uploaddir = "/";
    
    ## Erlaubte Dateitypen mit | trennen
    $types = "zip|rar|mp3";
    
    ## Maximale Dateigröße in MB
    $maxsizemb = "400";
    
    
    
    ## Einstellungen ende
    #########################################
    echo "<form  enctype=\"multipart/form-data\" method=\"POST\"> 
    <input name=\"localfile\" type=\"file\" size=\"100\">
    <br>&nbsp;&nbsp;&nbsp;&nbsp;<input type=\"image\" SRC=\"upload.jpg\" title=\"Hochladen\" name=\"sub\" value=\"Abschicken\"></form>";
    
    
    
    
    $a = explode("|", $types);
    $arraypices = count($a);
    echo "<BR><BR>&nbsp;&nbsp;Maximaler Upload pro Datei :<font color=\"#ff0000\" >&nbsp;$maxsizemb MB </font><BR><BR>&nbsp;&nbsp;Erlaubte Dateitypen: <BR>";
    for ($i = 0; $i < $arraypices; $i++) {
    echo "<font color=\"#ff0000\">&nbsp;&nbsp;$a[$i] </font><BR> ";
    }
    echo "<BR>";
    
    
    
    if($_FILES['localfile']){
    $tempname = $_FILES['localfile']['tmp_name'];
    $name = $_FILES['localfile']['name'];
    $type = $_FILES['localfile']['type'];
    $size = $_FILES['localfile']['size'];
    $maxsizebytes = ($maxsizemb * 1024 * 1024);
    $modus = FTP_BINARY ;
    $userid="userid";
    
    ##url zerlegen und userid anhängen
    $pathinfo = pathinfo($name);
    $name = basename($pathinfo['basename'], $pathinfo['extension']).$userid . $_SESSION['authid'] . '.' . $pathinfo['extension'] ;
    
    $uploadfile = "$uploaddir/$name";
    
    
    ## ftp verbindung aufbauen
    $con = ftp_connect("$ftp_server");
    
    
    $login = ftp_login($con, "$user", "$password"); 
    
    if ((!$con) || (!$login)) { $err[] = "FTP Verbindung fehlgeschlagen! Bitte die FTP Logindaten überprüfen!";
    die; }
    
    
    if(!preg_match("/\." . $types . "$/i" ,$_FILES["localfile"]["name"] ))
    { $err[] = "&nbsp;&nbsp;ungültige Dateiendung"; }
    
    ## max uploadgrösse vergleichen
    if($size > "$maxsizebytes") {
        $err[] = "&nbsp;&nbsp;Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt $maxsizemb MB!";
    }
    
    if(empty($err)){
    
    ##uploaden
    $upload = ftp_put($con, $uploadfile, $tempname, $modus);
    
    
    if (!$upload) { echo "&nbsp;&nbsp;Der Upload ist <font color=\"#ff0000\"><B>fehlgeschlagen!<B></font><BR><BR>"; 
      } else 
      { echo "&nbsp;&nbsp;Die Datei $name <font color=\"#00ff00\"><B>erfolgreich</B></font> hochgeladen!<BR><BR>"; }
    }
    
    else {
        foreach($err as $error)
        echo "$error<br>";
    }
    
    
    ftp_quit($con); 
    
    }
    $start = time();
    
    ## umrechnen von byte in KB MB GB TB
    function byte_umrechner($bytes) {
      if ($bytes > pow(2,10)) {
        if ($bytes > pow(2,20)) {
          if ($bytes > pow(2,30)) {
            if ($bytes > pow(2,40)) {
          $size = number_format(($bytes / pow(2,40)), 2);
          $size .= " TB";
          return $size;
          
        } else {
          $size = number_format(($bytes / pow(2,30)), 2);
          $size .= " GB";
          return $size;
          }
        } else {
          $size = number_format(($bytes / pow(2,20)), 2);
          $size .= " MB";
          return $size;
          }
        } else {
          $size = number_format(($bytes / pow(2,10)), 2);
          $size .= " KB";
          return $size;
        }
      } else {
        $size = (string) $bytes . " Bytes";
        return $size;
      }
    }
    
    
    ##ftp ordner auslesen
    function ftp_auslesen( $handle, $pfad ){
        $i = 0;
        $read = ftp_nlist( $handle, $pfad );
        foreach( $read as $val ){
            $pfad2 = str_replace( "./", "", $pfad);
            if( $val != $pfad2."." and $val != $pfad2.".." ){
                if( ftp_size( $handle, $val) != "-1" ){
                    $i += ftp_size( $handle, $val);
                }else{
                    $i += ftp_auslesen( $handle, $val."/" );
                }
            }
        }
        
        return $i;
    }
    
    if( $open = ftp_connect( $ftp_server, $port ) ){
        ##echo "FTP Verbindug wurde erfolgreich aufgebaut!<br /><br />";
        ftp_login( $open, $user, $password );
        $size = ftp_auslesen ( $open, $eSer );
        $sizegesamt = "4294967296";
        $sizefrei = $sizegesamt - $size;
        echo "&nbsp;&nbsp;Upload Speicherplatz&nbsp; ".byte_umrechner ($sizefrei). "&nbsp;von 4.00 GB";
        ftp_quit( $open );
    }else{
        echo "Konnte keine Verbindung zum FTP aufbauen!";
    }
    # Script Laufzeit
    echo "<br><br>&nbsp;&nbsp;Script Laufzeit:". (time() - $start ) ." sec.";
    ?>
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    @ Chapter, irgendwie bin ich immer an Vipes eintrag vorbei geflogen wo drinne steht das er den freien speicherplatz will ^^. sorry ^^
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Chapter Hall Of Fame
    Registriert seit
    21.10.2007
    Beiträge
    5.951
    Beitragswertungen
    229 Beitragspunkte
    kein problem.... zwinker
    Spamming, sinnlose Beiträge, Pushing, Doppelposting und Werbung sind verboten
    externer Link
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    ##uploaden
    $upload = ftp_put($con, $uploadfile, $tempname, $modus);


    Darunter müsstest du halt dann Berechnungen durchführen und die Ergebnisse Speichern, dazu könntest du z.B. in die prefix_config Tabelle ein neuen Eintrag anlegen, denn du dann updatest.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten