<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>