I did the same thing few days back. I took the post slug as image name for SEO purpose. I created a function to create/move images to a particular folder depending on the slug and input image url.
Here is look of my function-
function tb_get_image($image_ext_url,$slug,$upload_folder="",$title=''){ $uri = WP_CONTENT_DIR."/uploads/".$upload_folder; $folder = WP_CONTENT_URL."/uploads/".$upload_folder; if(!file_exists($uri)){ $oldmask = umask(0); if(!mkdir ($uri, 0755)){ $uri = WP_CONTENT_DIR."/uploads/"; $folder = WP_CONTENT_URL."/uploads/"; } } $localimage = $uri.$slug.".jpg"; ## Use PHP_PATHINFO to get extension. $image = $folder.$slug.".jpg"; ## Use PHP_PATHINFO to get extension. .... More code to rename and move/copy the image... .... }
Hope this guide is enough to get you in right direction.