To: mail at spybreak dot deI noted your solution was for mime_type_to_extension which is flawed because the MIME types to extensions are not unique. See my example to consider what I have observed.This function performs image type or mime type to extension. With limitation it will not attempt to handle duplicated MIME types. NOT DEFINITIVE!<?php if(!function_exists('image_type_to_extension')){ $extension; function image_type_or_mime_type_to_extension($image_type, $include_dot) { define ("INVALID_IMAGETYPE", ''); $extension = INVALID_IMAGETYPE; $image_type_identifiers = array ( array (IMAGETYPE_GIF => 'gif', "mime_type" => 'image/gif'), array (IMAGETYPE_JPEG => 'jpg', "mime_type" => 'image/jpeg'), array (IMAGETYPE_PNG => 'png', "mime_type" => 'image/png'), array (IMAGETYPE_SWF => 'swf', "mime_type" => 'application/x-shockwave-flash'), array (IMAGETYPE_PSD => 'psd', "mime_type" => 'image/psd'), array (IMAGETYPE_BMP => 'bmp', "mime_type" => 'image/bmp'), array (IMAGETYPE_TIFF_II => 'tiff', "mime_type" => 'image/tiff'), array (IMAGETYPE_TIFF_MM => 'tiff', "mime_type" => 'image/tiff'), array (IMAGETYPE_JPC => 'jpc', "mime_type" => 'application/octet-stream'), array (IMAGETYPE_JP2 => 'jp2', "mime_type" => 'image/jp2'), array (IMAGETYPE_JPX => 'jpf', "mime_type" => 'application/octet-stream'), array (IMAGETYPE_JB2 => 'jb2', "mime_type" => 'application/octet-stream'), array (IMAGETYPE_SWC => 'swc', "mime_type" => 'application/x-shockwave-flash'), array (IMAGETYPE_IFF => 'aiff', "mime_type" => 'image/iff'), array (IMAGETYPE_WBMP => 'wbmp', "mime_type" => 'image/vnd.wap.wbmp'), array (IMAGETYPE_XBM => 'xbm', "mime_type" => 'image/xbm') ); if((is_int($image_type)) AND (IMAGETYPE_GIF <= $image_type) AND (IMAGETYPE_XBM >= $image_type)){ $extension = $image_type_identifiers[$image_type-1]; $extension = $extension[$image_type]; } elseif(is_string($image_type) AND (($image_type != 'application/x-shockwave-flash') OR ($image_type != 'application/octet-stream'))){ $extension = match_mime_type_to_extension($image_type, $image_type_identifiers); } else { $extension = INVALID_IMAGETYPE; } if(is_bool($include_dot)){ if((false != $include_dot) AND (INVALID_IMAGETYPE != $extension)){ $extension = '.' . $extension; } } else { $extension = INVALID_IMAGETYPE; } return $extension; } } function match_mime_type_to_extension($image_type, $image_type_identifiers){ foreach($image_type_identifiers as $_key_outer_loop => $_val_outer_loop){ foreach($_val_outer_loop as $_key => $_val){ if(is_int ($_key)){ $extension = $_val; } if($_key == 'mime_type'){ if($_val === $image_type){ return $extension; } } } } return $extension = INVALID_IMAGETYPE; } $extension = image_type_or_mime_type_to_extension($image_type, $include_dot); return $extension;}?>