script errore Only variables

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
salve, ho questo errore quando eseguo lo script:

Strict Standards: Only variables should be passed by reference in /web/htdocs/www.sitoweb.it/home/test/upload.php on line 8

lo preso da qui:
http://techstream.org/Web-Development/PHP/Single-File-Upload-With-PHP
in fondo alla pagina..ed il codice è questo senza avere fatto nulla di modifiche.

PHP:
<?php
if(isset($_FILES['image'])){
    $errors= array();
    $file_name = $_FILES['image']['name'];
    $file_size =$_FILES['image']['size'];
    $file_tmp =$_FILES['image']['tmp_name'];
    $file_type=$_FILES['image']['type'];   
    $file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
    $extensions = array("jpeg","jpg","png"); 		
    if(in_array($file_ext,$extensions )=== false){
     $errors[]="extension not allowed, please choose a JPEG or PNG file.";
    }
    if($file_size > 2097152){
    $errors[]='File size must be excately 2 MB';
    }				
    if(empty($errors)==true){
        move_uploaded_file($file_tmp,"images/".$file_name);
        echo "Success";
    }else{
        print_r($errors);
    }
}
?>
<form action="" method="POST" enctype="multipart/form-data">
    <input type="file" name="image" />
    <input type="submit"/>
</form>

idea per risolvere il problema?

grazie mille e buona serata e settimana.
 
il problema credo sia nella variabile $file_ext perché viene passato ad end() un explode() mentre bisogna passare un vero array poiché end lo modifica.
quindi devi prima fare l'explode in una variabile e poi passare quella all'end
 

Discussioni simili