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>