Change filename during upload

I check the below answer to rename files during upload and tries to change it to something like postid_originalfilename.jpg but failed. Any help?

function make_filename_hash($filename) {
$info = pathinfo($filename);
$ext  = empty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($filename, $ext);
return md5($name) . $ext;
}
add_filter('sanitize_file_name', 'make_filename_hash', 10);

https://stackoverflow.com/questions/11586284/rename-files-on-upload-in-wordpress-3-4-1

Related posts

Leave a Reply

1 comment

  1. 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.