Some time ago (in October last year to be exact) I developed an extension to the built-in content selector with support for direct upload.
Read the original blogpost here.
My colleague Mattias Olsson has since packaged it up and it is available for installation using Episervers NuGet feed.
You don't need to do anything. It will automatically replace all properties with UIHint.Image and UIHint.MediaFile
[UIHint(UIHint.Image)]
public virtual ContentReference MyImage { get; set; }
[UIHint(UIHint.MediaFile)]
public virtual ContentReference MyFile { get; set; }
Install NuGet package (use EPiServer Nuget)
Install-Package Geta.Epi.MediaReferenceSelector
Head over to the project site for more details and the source code.
Get back if you experience any issues etc.