Se avete intenzione di scrivere una web part che utilizza o il controllo FileUpload o il controllo HtmlInputFile e di effettuarne il deploy tramite una Sandbox Solution sappiate che vi troverete di fronte ad una bella sorpresa.
In pratica, a casa dei limiti di sicurezza che ha il processo in cui girano le soluzioni deployate come "sandbox" (il processo "User Code"), non è possibile accedere al contesto HTTP corrente e quindi recuperare il file che l'utente ha intenzione di postare. Infatti, come potete vedere in figura, il contenuto della proprietà PostedFile della classe FileUpload è nullo.

Il controllo FileUpload non è disponibile all'interno di soluzioni sandbox di SharePoint 2010

Se lo stesso codice lo spostate in una Farm Solution, vedrete che il meccanismo di upload proprio del controllo ASP.NET in questione, funzionerà senza alcun problema.
Purtroppo non c'è soluzione a questo limite, a meno di utilizzare javascript e fare l'upload di file attraverso il modello ad oggetti client-side.