file upload does not work - need help
thomas1980m Mar 8, 2011 2:45 AMhello
i implemented the following file upload in seam, but the values in the UploadedFile
are always null. can anyone help me please?
components.xml:
<web:multipart-filter create-temp-files="true" max-request-size="100000000" url-pattern="*.seam" />
web.xml:
<filter> <filter-name>Seam Multipart Filter</filter-name> <filter-class>org.jboss.seam.web.MultipartFilter</filter-class> </filter> <filter-mapping> <filter-name>Seam Multipart Filter</filter-name> <url-pattern>*.seam</url-pattern> </filter-mapping>
UploadedFile.java:
@Name("uploadedFile")
public class UploadedFile {
private InputStream uploadedFileData;
private String fileName;
public String getFileName() {
System.out.println("getFileName:" + this.fileName);
return this.fileName;
}
public void setFileName(String fileName) {
System.out.println("setFileName:" + this.fileName);
this.fileName = fileName;
}
public InputStream getUploadedFileData() {
System.out.println("getuploadedFileData:" + this.uploadedFileData);
return this.uploadedFileData;
}
public void setUploadedFileData(InputStream uploadedFileData) {
System.out.println("setuploadedFileData:" + uploadedFileData);
this.uploadedFileData = uploadedFileData;
}
public void parse() throws Exception {
System.out.println("parse:" + this.fileName);
System.out.println("parse2:" + getUploadedFileData());
if (uploadedFileData != null) {
System.out.println("size = " + uploadedFileData);
} else {
System.out.println("file is null");
}
}and on the html page i implemented:
<h:form enctype="multipart/form-data">
<s:validateAll>
<table class="filter">
<tbody>
<tr>
<td>#{messages['ExeclImport.SelectFile']}</td>
<td>
<s:fileUpload data="#{uploadedFile.uploadedFileData}" fileName="#{uploadedFile.fileName}" />
</td>
<td>
<h:commandButton id="upload" action="#{uploadedFile.parse}" value="#{messages['Button.Upload']}" />
</td>
</tr>
</tbody>
</table>
</s:validateAll>
</h:form>