Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    119

    Non funziona il controllo sulla dimensione del file

    Ho questo cgi per l'upload del file.

    Il controlo alla 40a riga (// Controllo dimensioni ) per la dimensione del file viene totalmente ignorato..


    Codice PHP:
     <?php
      
    // ---------------
      // INITIALIZE PAGE
      // ---------------
      
    require_once('scripts/sb_functions.php');
      global 
    $logged_in;
      
    $logged_in logged_intruetrue );
      
      
    read_config();
      
      require_once(
    'languages/' $blog_config'blog_language' ] . '/strings.php');
      
    sb_language'upload_img' );

      
    // ---------------
      // POST PROCESSING
      // ---------------
      
      
    for ($i=0;$i<count($_FILES['userfile']);$i++) {
      
        if (
    $ok == null) {
          
    $ok false;
        }
        
        if (
    is_uploaded_file($_FILES['userfile']['tmp_name'][$i])) {
          if ( 
    $_FILES'userfile' ][ 'error' ][$i] == ) {         // se folder non esiste lo crea ndrob
            
    if (!file_exists(IMAGES_DIR)) {
              
    $oldumask umask(0);
              @
    mkdir(IMAGES_DIR0777 );
              @
    umask($oldumask);
            }
             
    // Mod rob: aggiunte le parentesi quadre alla sostituzione con underscore (le parentesi quadre nell'immagine vanno in                  // conflitto con il tag per inserire l'immagine nel post) 
             // Old: $uploadfile = $uploaddir . preg_replace("/ /","_",$_FILES['userfile']['name'][$i]);
            
    $uploaddir IMAGES_DIR;
            
    $char = array(' ',"]","[");
            
    $uploadfile $uploaddir str_replace($char,"_",$_FILES['userfile']['name'][$i]);
            
            
    // Mod rob: controllo presenza altro file con lo stesso nome.
            
    if (file_exists($uploadfile)) {
              echo(
    'Esiste già un immagine con lo stesso nome.'.'</a>

    '
    );
              echo(
    'Rinomina il file che vuoi inserire e ');
              echo( 
    '[url="upload_img.php"]' 'riprova nuovamente' '[/url]

    );
              exit;
            }
            
            
    // Controllo dimensioni
            
    $size_bytes =500000;                     //51200000 bytes = 50000KB.
            //$file_size = $new_file['size'];
            //$new_file = $_FILES['file'.$i];
            
            
    if ($uploadfile $size_bytes){
              echo 
    "Immagine troppogrande";
              exit;
            }
                               
            if ( @
    getimagesize($_FILES['userfile']['tmp_name'][$i]) == FALSE ){
              echo(
    'Il file selezionato non è un file immagine valido');
              exit;
            }
            
            
            if (
    strpos($uploadfile".") === false) {
              echo(
    'File does not have an extension');
              exit;
            }
            
            if (
    strpos($uploadfile".") == 0) {
              echo(
    'File begins with "."');
              exit;
            }
            
            if (
    strrpos($uploadfile".") == strlen($uploadfile)-1) {
              echo(
    'File ends with "."');
              exit;
            }
            
            
    $extension strtolower(substr(strrchr($uploadfile"."), 1));
            
            if (
    strlen($extension) == 0) { // Not really needed...
              
    echo('File ends with "." and does not have an extension');
              exit;
            }
            
            
    // Allowed files
            
    $upload_valid_extentions = array( "jpg""gif""png" );
            
    $extension strtolower(substr(strrchr($uploadfile"."), 1));
            if (!
    in_array($extension$upload_valid_extentions)) {
              echo(
    'That filetype is not allowed');
              exit;
            }
            
            
    // Explicitly denied files (we don't really need this anymore...) - provided by ReZEN (rezen@xorcrew.net)
            
    $upload_denied_extentions = array( "exe""pl""php""php3""php4""php5""phps""asp","cgi""html""htm""dll""bat""cmd" );
            foreach (
    $upload_denied_extentions AS $denied_extention) {
              if(
    $denied_extention == $extension) {
                echo(
    'That filetype is not allowed');
                exit;
              }    
            }
            
    // if ( move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $uploadfile.rand(1,1000)) ) {

            // $day = date("d",time());
            // $month = date("m",time());
            
    $year date("y",time());
            
    // $hourH = date("H",time());
            // $houri = date("i",time());
            // $hours = date("s",time());
            
    if ( move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $uploadfile) ) {
              
    chmod$uploadfile0777 );
              
    $ok true;
            } else {
              
    $ok false;
            }

          }
        }
      }
      if ( 
    $ok === true ) {
        
    redirect_to_url'add.php' );
      }
      
    // ------------
      // PAGE CONTENT
      // ------------
      
    function page_content() {
        global 
    $lang_string$user_colors;
        if ( 
    $ok !== true ) {
          echo( 
    $lang_string'error' ] . $ok '

    );
        }
        
    //echo(count($_FILES['userfile']));
        //print_r($_FILES['userfile']);
        //echo($_FILES['userfile']['name'][0]);
        
    echo( '[url="index.php"]' $lang_string'home' ] . '[/url]

    );
      }
      
      
    // ----
      // HTML
      // ----
    ?>
      <?php echo( get_init_code() ); ?>
      <?php require_once('themes/' $blog_theme '/user_style.php'); ?>
      
      <title><?php echo($blog_config'blog_title' ]); ?> - <?php echo( $lang_string'title' ] ); ?></title>
    </head>
      <?php 
        
    // ------------
        // BEGIN OUTPUT
        // ------------
        
    theme_pagelayout();
      
    ?>
    </html>

  2. #2
    Stai confrontando il nome del file con la dimensione.
    Utilizza $_FILES['userfile']['size'] oppure http://www.php.net/filesize

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    119
    Intendi così...?

    Codice PHP:
             // Controllo dimensioni
            
    $size_bytes =500000;                     //51200000 bytes = 50000KB.
            //$file_size = $new_file['size'];
            //$new_file = $_FILES['file'.$i];
            
            
    if ($_FILES['userfile']['size'] > $size_bytes){
              echo 
    "Immagine troppogrande";
              exit;
            } 

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    119
    in questo modo me le restituisce tutte come troppo grandi...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    119
    Nessun idea ?

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    119
    Help

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.