Seam file upload not uploading without persistance to db
gebuh Nov 9, 2011 6:57 PMMy use case is:
user uploads an excel file
I parse that file into an entityBean list
validate the data and save it to a db table.
I can upload a file and save it to the db as a lob.  But I can't upload the file and manipulate it first.  It appears that the data remains null.
uploadView.xhtml:
<h:form enctype="multipart/form-data">
<s:fileUpload id="file"     acceptedTypes ="#{acType}"
                         data="#{uploadAttachment.data}"                              
                        contentType="#{uploadAttachment.contentType}"
                        fileName="#{uploadAttachment.name}"
                        fileSize="#{uploadAttachment.size}"
                    /> 
<a:commandButton value="Upload" action="#{uploadAttachment.upload()}" reRender="vw"/>
components.xml:
<web:multipart-filter create-temp-files="false" max-request-size="1000000" url-pattern="*.seam" />
upload entity:
@Name("uploadAttachment")
@Scope(ScopeType.SESSION)
public class UploadAttachment implements Serializable {
     private String name;
     private long size;
     private String contentType;
     private byte[] data;  //this is always null
     public boolean upload(){
          log.debug("getting some data " + this.getName());
          return true;
     }
...various getters and setters
So I tried using rich:fileUpload.  
uploadView.xhtml:
<rich:fileUpload fileUploadListener="#{uploadAttachment.listener}"
                id="upload"
                immediateUpload="false"
                acceptedTypes="#{acType}" >
                <a:support event="onuploadcomplete" reRender="upPnl" />  
            </rich:fileUpload>added this method to upload attachemt file:
 public void listener(UploadEvent event) throws Exception{
           log.debug("creating a new attachment object");
            UploadItem item = event.getUploadItem();
            this.data = item.getData();
            this.size = this.data.length;  //TODO HANDLE NULLS!!!!!!!!!!!!!!!!!
            this.name =item.getFileName();
            this.contentType = item.getContentType();
         }Initially this wouldn't work either data was still null), until I added:
<init-param> <param-name>createTempFiles</param-name> <param-value>false</param-value> </init-param>
to web.xml.  I'm able to upload files now, but why would I need this?  Shouldn't the filter in components.xml cover this?
This still doesn't allow me to upload files using the Seam component though.  Is there something else I'm missing?
