However it ALWAYS returned null for noteManagement.restoreNotesData which is a byte property on the noteManagement seam component. The reason? Idiot me forgot to wrap that s:fileUpload in a separate form element declared as a multipart form:
id="restore_notes_form" enctype="multipart/form-data"> ...
After adding that, file uploads worked beautifully. Of course you still have to have this in components.xml:
<component class="org.jboss.seam.web.MultipartFilter"> <property name="createTempFiles">true</property> <property name="maxRequestSize">1000000</property> </component>