Maximale Dateiuploadgröße mit PHP ermitteln
Dienstag, 19. September 2006
http://www.webmaster-resource.de/tricks/php/maximale-dateiuploadgroesse-mit-php-ermitteln.php Über Formulare können Sie Ihren Besuchern anbieten, Dateien auf Ihren Webserver hochzuladen. Um Ihren Besuchern automatisch anzuzeigen, wie groß die hochzuladende Datei maximal sein darf, können Sie dieses kleine PHP-Script in Ihre Webseite einfügen. Im folgenden Beispiel wird mit Hilfe der Funktion UploadmoeglichkeitPruefen(...) ermittelt, ob es überhaupt möglich ist, Dateien auf Ihren Webserver zu übertragen. Sie finden diese Einstellung in der PHP-Konfigurationsdatei "php.ini" (unter "file_uploads = on"). Sofern das Hochladen von Dateien grundsätzlich gestattet ist, liefert die Funktion MaximaleDateiuploadGroesseErmitteln(...) die entsprechende maximale Größe für den Upload der Datei als Zahl in Bytes zurück. Diesen Wert können Sie ebenfalls in der PHP-Konfigurationsdatei unter "upload_max_filesize = 2M" bzw. "post_max_size = 2M" anpassen. Quellcode
 
   1.
      <?php
   2.
       
   3.
      function PHPINIWertUmwandeln($Groesse)
   4.
      {
   5.
          $Werte['MB'] = 1048576;
   6.
          $Werte['Mb'] = 1048576;
   7.
          $Werte['M'] = 1048576;
   8.
          $Werte['m'] = 1048576;
   9.
          $Werte['KB'] = 1024;
  10.
          $Werte['Kb'] = 1024;
  11.
          $Werte['K'] = 1024;
  12.
          $Werte['k'] = 1024;
  13.
       
  14.
          while(list($Schluessel) = each($Werte))
  15.
          {
  16.
              if((strlen($Groesse) > strlen($Schluessel)) && (substr($Groesse, strlen($Groesse)-strlen($Schluessel)) == $Schluessel))
  17.
              {
  18.
                  $Groesse = substr($Groesse, 0, strlen($Groesse)-strlen($Schluessel))*$Werte[$Schluessel];
  19.
                  brea
      k;
  20.
              }
  21.
          }
  22.
          return $Groesse;
  23.
      }
  24.
       
  25.
      function UploadmoeglichkeitPruefen()
  26.
      {
  27.
          $Uploadmoeglichkeit = TRUE;
  28.
       
  29.
          if(strtolower(@ini_get('file_uploads'))=='off' || @ini_get('file_uploads')==0)
  30.
          {
  31.
              $Uploadmoeglichkeit=FALSE;
  32.
          }
  33.
       
  34.
         
      return $Uploadmoeglichkeit;
  35.
      }
  36.
       
  37.
      function MaximaleDateiuploadGroesseErmitteln()
  38.
      {
  39.
          $MaximaleDateiuploadGroes
      se = 0;
  40.
       
  41.
          if($Dateigroesse = @ini_get('upload_max_filesize'))
  42.
          {
  43.
              $MaximaleDateiuploadGroesse = PHPINIWertUmwandeln($Dateigroesse);
  44.
          }
  45.
       
  46.
          if($Postgroesse = @ini_get('post_max_size'))
  47.
          {
  48.
              $Postgroesse = PHPINIWertUmwandeln($Postgroesse);
  49.
       
  50.
              if($Postgroesse < $MaximaleDateiuploadGroesse)
  51.
              {
  52.
                  $MaximaleDateiuploadGroesse = $Postgroesse;
  53.
              }
  54.
          }
  55.
         
  56.
          return$MaximaleDateiuploadGroesse;
  57.
      }
  58.
       
  59.
       
  60.
      if(
      UploadmoeglichkeitPruefen())
  61.
      {
  62.
          $MaximaleDateiuploadGroesse=Maxima
      leDateiuploadGroesseErmitteln();
  63.
          echo"Sie können Dateien hochladen!
",
  64.
              "Die maximale Uploadgröße beträgt ",
  65.
              number_format($MaximaleDateiuploadGroesse/1024, 0, ",", "."),
  66.
              " kB (",
  67.
              $MaximaleDateiuploadGroesse,
  68.
              " Bytes).";
  69.
      }
  70.
      else
  71.
      {
  72.
          echo"Sie können keine Dateien hochladen!";
  73.
      }
  74.
       
  75.
      ?>