Hi Wolfgang,

this means that you already have a h:form-tag in your page, surrounding the
one with id "upload".
You can either remove this form and switch the enctype on the outer one.
Or if the form is included in a template, and you don't want to have the
enctype "multipart/form-data" for all your views you can set the enctype
dynamically via a binding.

public HtmlForm getForm(){
        HtmlForm form = (HtmlForm) getApplication().createComponent("
javax.faces.HtmlForm");
        String currentViewId = FacesContext.getCurrentInstance
().getViewRoot().getViewId();
        if(currentViewId.equals("/some_upload_form.xhtml")) {
            form.setEnctype("multipart/form-data");
        }
        return form;
}

cheers,
Christoph



On 9/6/07, Wolfgang <[EMAIL PROTECTED]> wrote:
>
> Hi sorry forgot to put the new html code inside.
> Here it is:
>
>       <h:form id="upload" enctype="multipart/form-data">
>
>                             <t:inputFileUpload
>                                     id="myUploadedFile"
>                                     storage="file"
>                                     accept="image/*"
>                                     styleClass="myStyle"
>                                     value="#{home.uploadFile}"/>
>
>                             <h:commandButton
> actionListener="#{home.upload}"/>
>
>                             </h:form>
>
> > Hi Wolfgang,
> >
> > make sure that the surrounding h:form has enctype="multipart/form-data".
> >
> > cheers,
> > christoph
> >
> > On 9/6/07, *Wolfgang* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
> wrote:
> >
> >     Hi,
> >
> >     I tried to upload a File but I always got a NullPointerException,
> >     because the uploadFile.getBytes(), uploadFile.getContentType() and
> >     uploadFile.getName()) are null.
> >
> >     I don't understand why?!
> >
> >     Cheers!
> >
> >
> >     private UploadedFile uploadFile;
> >
> >
> >     public void upload(ActionEvent evt) throws IOException
> >         {
> >             FacesContext facesContext = FacesContext.getCurrentInstance
> ();
> >
> >     facesContext.getExternalContext
> >     ().getApplicationMap().put("fileupload_bytes",
> >     uploadFile.getBytes());
> >
> >     facesContext.getExternalContext
> ().getApplicationMap().put("fileupload_type",
> >     uploadFile.getContentType());
> >
> >     facesContext.getExternalContext
> >     ().getApplicationMap().put("fileupload_name",
> >     uploadFile.getName());
> >
> >         }
> >
> >     // Getter and Setters
> >
> >         public UploadedFile getUploadFile() {
> >             return uploadFile;
> >         }
> >
> >         public void setUploadFile(UploadedFile uploadFile) {
> >             this.uploadFile = uploadFile;
> >         }
> >
> >
> >     <t:inputFileUpload
> >                                     id="myUploadedFile"
> >                                     storage="file"
> >                                     accept="image/*"
> >                                     styleClass="myStyle"
> >                                     value="#{home.uploadFile}"/>
> >
> >     <h:commandButton actionListener="#{home.upload}"/>
> >
> >
>
>

Reply via email to