Image upload - Latin chars problem

Posted by Holian on Stack Overflow See other posts from Stack Overflow or by Holian
Published on 2009-11-26T14:18:17Z Indexed on 2010/06/18 13:03 UTC
Read the original article Hit count: 273

Filed under:

Dear Gods!

I use this script to upload images to serveR:

 <?php

if (($_FILES["image_upload_box"]["type"] == "image/jpeg" || $_FILES["image_upload_box"]["type"] == "image/pjpeg"  && ($_FILES["image_upload_box"]["size"] < 2000000))
    {

    	$max_upload_width = 450;
    	$max_upload_height = 450;
    	if(isset($_REQUEST['max_width_box']) and $_REQUEST['max_width_box']!='' and $_REQUEST['max_width_box']<=$max_upload_width){
    		$max_upload_width = $_REQUEST['max_width_box'];
    	}    
    	if(isset($_REQUEST['max_height_box']) and $_REQUEST['max_height_box']!='' and $_REQUEST['max_height_box']<=$max_upload_height){
    		$max_upload_height = $_REQUEST['max_height_box'];
    	}	
    	if($_FILES["image_upload_box"]["type"] == "image/jpeg" || $_FILES["image_upload_box"]["type"] == "image/pjpeg"){	
    		$image_source = imagecreatefromjpeg($_FILES["image_upload_box"]["tmp_name"]);
    	}		

    	$remote_file =$directory."/".$_FILES["image_upload_box"]["name"];
    	imagejpeg($image_source,$remote_file,100);
    	chmod($remote_file,0644);

    	list($image_width, $image_height) = getimagesize($remote_file);

    	if($image_width>$max_upload_width || $image_height >$max_upload_height){
    		$proportions = $image_width/$image_height;

    		if($image_width>$image_height){
    			$new_width = $max_upload_width;
    			$new_height = round($max_upload_width/$proportions);
    		}		
    		else{
    			$new_height = $max_upload_height;
    			$new_width = round($max_upload_height*$proportions);
    		}		


    		$new_image = imagecreatetruecolor($new_width , $new_height);
    		$image_source = imagecreatefromjpeg($remote_file);

    		imagecopyresampled($new_image, $image_source, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
    		imagejpeg($new_image,$remote_file,100);

    		imagedestroy($new_image);
    	}

    	imagedestroy($image_source);



    }else{
       something....
    }

?>

This is works well, till i upload a photo with latin chars in filename. For example the filename: kék hegyek.jpg. After upload file name will be: KA©k hegyek.jpg

How can i solve this?

Thank you

© Stack Overflow or respective owner

Related posts about php