Hi Amit! Honestly i dont see benefit to restore any image for me.
In any case I write my own implementation of downloading images, in short
1)Create custom field 'gallery' where I get from database images if row in UPDATE mode (in INSERT it will be just button 'Download'), and functionality to upload images (using jquery download plugin),
input with array images like <input type=file name=images[]>
2)Create my own TMP folder
3)When click DOWNLOAD - images uploads to my tmp and add one more input to 'images'
4)In callback after insert - I get array of uploaded images, create folder for certain row with name = ID, and move images in array 'images' to this new folder
IF it was update row, in callback_after_update:
- get new image array (it may contains old and new images, or empty)
- get OLD image array from DB, compare with NEW one
- insert new, delete old or delete all if new image array is empty
And if I press DELETE (link i generate in gallery callback field for each image), I just remove image, not delete! All operation will be accept only if press SAVE or SAVE AND BACK TO THE LIST
5)my TMP folder clean files by cron job in a few hours, looking for files that placed in TMP one hour or more
Sor for my awful english, hope you understood!