Próbuje realizować przykład JSF 2.2 Mam następujący kod:JSF 2.2 - fileupload nie działa z Ajaxem. Postać wydaje się mieć nieprawidłowy enctype (tylko za pośrednictwem AJAX)
<h:form prependId="false" enctype="multipart/form-data">
<!-- Now it's the AJAX file upload component -->
<h:inputFile id="fileUpload" value="#{someBean.file}" >
<f:ajax />
</h:inputFile>
<h:commandButton value="Upload" />
</h:form>
Według niektórych JSF 2.2 to powinno działać, ale w moim przypadku jest to danie mi następujący błąd:
the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is application/x-www-form-urlencoded;charset=UTF-8
Patrząc na życzenie chociaż mam ustawić moja forma enctype poprawnie, częściowy wniosek przedkłada:
Content-type:application/x-www-form-urlencoded;charset=UTF-8 Faces-Request:partial/ajax
Uwaga web.xml który również został zmodyfikowany:
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<multipart-config>
<location>c:\dotmp</location>
<max-file-size>20848820</max-file-size>
<max-request-size>418018841</max-request-size>
<file-size-threshold>1048576</file-size-threshold>
</multipart-config>
</servlet>
Używam Mojarra 2.2.0-M15, ale próbowałem z wcześniejszymi wersjami, jak również. Czy ktoś wie jakieś przydatne informacje na temat tego problemu, który zakładam jest błąd?
Dzięki za odpowiedź BalusC. Denerwowałem się JSF2.2, więc wróciłem do najnowszej wersji JSF2.1 i użyłem twojego zestawu renderów Omnifaces dla html5. Do filwdownload poszedłem za twoim tutorialem z http://balusc.blogspot.co.uk/2009/12/uploading-files-in-servlet-30.html i zaskakująco dostałem dokładnie ten sam błąd. Spowodowany przez: org.apache.tomcat.util.http.fileupload.FileUploadBase $ InvalidContentTypeException: wniosek nie zawiera multipart/form-data lub wieloczęściowy/mieszany strumień, typ zawartości nagłówka jest application/x-www-form -urlencoded; charset = UTF-8 –
Być może zagnieżdżasz formularze? Byłby to raczej oczywisty błąd, gdybyś kiedykolwiek spróbował wyizolować problem w pełni wartą SSCCE. – BalusC
Chciałbym mieć to szczęście. To, co mam powyżej, znajduje się na własnej stronie, a także na kodzie z twojego przykładu. Jest to tylko jedna forma, a dzieje się tak tylko wtedy, gdy przesyłam przy użyciu Ajax, w przeciwnym razie działa dobrze. –