class.upload.php is a powerful and mature PHP class to manage uploaded files, and manipulate images in many ways. The script is available under a GPL license.
more info about the class
$foo->file_safe_name = false;
$this->file_dst_name_body = str_replace(array(' ', '-'), array('_','_'), $this->file_dst_name_body) ; $this->file_dst_name_body = ereg_replace('[^A-Za-z0-9_]', '', $this->file_dst_name_body) ;
$this->file_dst_name_body = str_replace(' ', '_', $this->file_dst_name_body) ; $this->file_dst_name_body = ereg_replace('[^A-Za-z0-9_-]', '', $this->file_dst_name_body) ;
or edit the class as following, replacing
with