Codex tools: Log in
When you upload Media from your WordPress admin dashboard, wp_handle_upload is called once for each file the user specified. wp_handle_upload_prefilter is an admin filter that is called by the wp_handle_upload function. The single parameter, $file, represent a single element of the $_FILES array. The wp_handle_upload_filter provides you with an opportunity to examine or alter the filename before the file is moved to its final location.
add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' );
function custom_upload_filter( $file ){
$file['name'] = 'wordpress-is-awesome-' . $file['name'];
return $file;
}
Using this, in conjunction with the upload_dir, you can dynamically determine which directory to upload to, based on the files you upload.