<t:inputFileUpload id="fileupload" accept="WebContent/images/*" 
value="#{uploadCourse.learningpic}" storage="file" 
styleClass="fileUploadInput" required="true" /> 
<h:panelGrid> 
<h:commandButton id="uploadButton" value="开始上传" 
action="#{uploadCourse.upCourse}" type="submit" /> 
</h:panelGrid> 
private UploadedFile learningpic; 
set() & get() 
public String upCourse() throws IllegalAccessException, 
InvocationTargetException, NoSuchMethodException ,IOException { 
Long a = new Long("1000000000000000"); 
Double b = (a * Math.random()); 
try { 
InputStream in = new BufferedInputStream(learningpic.getInputStream()); 
try { 
byte[] buffer = new byte[64 * 1024]; 
FileOutputStream fileOutputStream = new FileOutputStream("C:\\"+ b.toString() + ".jpg"); 
while (in.read(buffer) > 0) { 
fileOutputStream.write(buffer); 
} 
} finally { 
in.close(); 
} 
System.out.println("End"); 
} catch (Exception e) { 
System.out.println("IOException"); 
FacesMessage message = new FacesMessage( 
FacesMessage.SEVERITY_FATAL, e.getClass().getName(), e 
.getMessage()); 
FacesContext.getCurrentInstance().addMessage(null, message); 
return "false"; 
} 
UploadCourse uploadCourse = new UploadCourse(); 
uploadCourse.setStatus("2"); 
PropertyUtils.copyProperties(uploadCourse, this); 
if (uploadCourseService.upCourse(uploadCourse) == true) { 
return "success"; 
} else { 
return "false"; 
} 
}
注意一定要在web.xml里加上filter,否则form将不能提交。 
   <filter> 
     <description>Set the size limit for uploaded files. 
            Format: 10 - 10 bytes 
            10k - 10 KB 
            10m - 10 MB 
            1g - 1 GB </description> 
     <filter-name>extensionsFilter </filter-name> 
     <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter </filter-class> 
     <init-param> 
       <param-name>uploadMaxFileSize </param-name> 
       <param-value>10m </param-value> 
     </init-param> 
     <init-param> 
       <description>Set the threshold size - files 
                below this limit are stored in memory, files above 
                this limit are stored on disk. 
                Format: 10 - 10 bytes 
                10k - 10 KB 
                10m - 10 MB 
                1g - 1 GB </description> 
       <param-name>uploadThresholdSize </param-name> 
       <param-value>100k </param-value> 
     </init-param> 
   </filter> 
   <filter-mapping> 
  	 <filter-name>extensionsFilter </filter-name> 
  	 <servlet-name>Faces Servlet </servlet-name> 
   </filter-mapping>