Olá pessoal
Na minha aplicação, uso o fileupload do rich faces. Minha implementação está como o do próprio exemplo do rich faces.
Por alguma razão, o Listener não é chamado quando seleciono um arquivo.
Imagino que o problema esteja no filtro, dentro do web.xml (chute)
Esses são os arquivos da minha aplicação:
web.xml:
<filter>
<display-name>Ajax4jsf Filter</display-name>
<filter-name>ajax4jsf</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
<init-param>
<param-name>createTempFiles</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>maxRequestSize</param-name>
<param-value>20000000</param-value>
</init-param>
</filter>
Página
<h:panelGrid columns="2">
<rich:fileUpload binding="#{ImportacaoManager.alunoFileUpload}"
fileUploadListener="#{ImportacaoManager.uploaderAluno.listener}"
maxFilesQuantity="#{ImportacaoManager.uploaderAluno.uploadsAvailable}"
id="upload"
immediateUpload="#{ImportacaoManager.uploaderAluno.autoUpload}"
acceptedTypes="jpg, gif, png, bmp" allowFlash="#{ImportacaoManager.uploaderAluno.useFlash}">
<a4j:support event="onuploadcomplete" reRender="info" />
</rich:fileUpload>
<h:panelGroup id="info">
<rich:panel bodyClass="info">
<f:facet name="header">
<h:outputText value="Uploaded Files Info" />
</f:facet>
<h:outputText value="No files currently uploaded"
rendered="#{ImportacaoManager.uploaderAluno.size==0}" />
<rich:dataGrid columns="1" value="#{ImportacaoManager.uploaderAluno.files}"
var="file" rowKeyVar="row">
<rich:panel bodyClass="rich-laguna-panel-no-header">
<h:panelGrid columns="2">
<a4j:mediaOutput element="img" mimeType="#{file.mime}"
createContent="#{fileUploadBean.paint}" value="#{row}"
style="width:100px; height:100px;" cacheable="false">
<f:param value="#{fileUploadBean.timeStamp}" name="time"/>
</a4j:mediaOutput>
<h:panelGrid columns="2">
<h:outputText value="File Name:" />
<h:outputText value="#{file.name}" />
<h:outputText value="File Length(bytes):" />
<h:outputText value="#{file.length}" />
</h:panelGrid>
</h:panelGrid>
</rich:panel>
</rich:dataGrid>
</rich:panel>
<rich:spacer height="3"/>
<br />
<a4j:commandButton action="#{fileUploadBean.clearUploadData}"
reRender="info, upload" value="Clear Uploaded Data"
rendered="#{fileUploadBean.size>0}" />
</h:panelGroup>
</h:panelGrid>
Bean:
public void listener(UploadEvent event) throws Exception{
UploadItem item = event.getUploadItem();
File file = new File();
file.setLength(item.getData().length);
file.setName(item.getFileName());
file.setData(item.getData());
files.add(file);
uploadsAvailable--;
}
Acho que pode ser o filtro porque os problemas deste tipo que encontrei, estavam envolvidos com filtro. Não é lançada nenhuma excessão ou erro.
Pessoal, alguém pode me dar uma ajuda?
Valeu