You need to pass the $profileuser->ID as the second argument when you call your function and define it accordingly:
add_filter('wp_handle_upload_prefilter', 'my_pre_upload', 2, 2);
// (3rd param is priority, 4th is number of args)
// and pass the $userid as argument to your function
function my_pre_upload($file, $userid = false){
// if no user specified, get $current_user
$userid = $userid ?: get_current_user_id();
$user = get_userdata( $userid );
$myAuthorImg = 'author-' . $user->ID . '.jpg";
$file['name'] = $myAuthorImg
return $file;
}