If you want to use the above sanitize_file_name
filter, you could try this:
function make_filename_hash($filename) {
if( isset($_REQUEST['post_id']) ) {
$post_id = (int)$_REQUEST['post_id'];
}else{
$post_id=0;
}
$info = pathinfo($filename);
$ext = empty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($filename, $ext);
if($post_id>0){
return $post_id."_".$name . $ext;
}else{
return $name . $ext;
}
}
add_filter('sanitize_file_name', 'make_filename_hash', 10);
where for example image.jpg
is changed to 123_image.jpg
where 123 is the parent post id.