All the things that you mention can be accomplished by using Digital File Pro in the contact form.
Here are the basics about what you will need to do to get this working.
First, you need to add the file fields to your form, there should be one for each upload you would like to have occur.
Next you need to update the form tag, it must include this attribute in it:
enctype="multipart/form-data"
After this you will add in the Digital File Pro server behaviors for the uploads. For the trigger you should choose same page post. You will configure the upload server behavior how you will need it, you can specify the directory and any resizing that you would need.
You will then add in the progress bar by selecting the form on the page and going to insert > webassist > digital file pro > progress bar, or you can click on the progress bar button in the webassist insert panel.
The very last part of this would be to modify the email message for the contact form to add in the filenames of the files that were uploaded. This part will require a little bit of custom coding since it is designed to show form element names and values. I can show you what needs to be done in this part when you get to it, just let us know.