Olá
implementei o upload de uma aplicação que ja está em produção utilizando o Richfaces, localmente e no servidor de testes, tudo funciona ok, pois está na mesma rede e upload é super-Rapido!
no entanto, em produção, o upload algumas vezes funciona, outras vezes não.
Quando nao funciona o fileupload do Richfaces informa ao usuário q o arquivos foi upado com sucesso, no entanto a arquivo não é salvo no sistema de arquivos.
- Acredito que seja algo relacionado ao tempo de upload pois quando o upload é rapido funciona tudo ok, no entato upload um pouco demorado não salva a imagem. localmente como é rápido fiz upload de imagens grandes e não deu erro, usando a mesma imagem na produção, a imagem não foi salva!
Alguem faz ideia do que está acontecendo:
Meu Código de Upload:
public void upload(UploadEvent event){
UploadItem item = event.getUploadItem();
ImagemUtils imgUtils = new ImagemUtils();
try{
//checar se é um arquivo temporário
//e copiar o arquivo
if (item.isFile()) {
File file = item.getFile();
pathImagem = imgUtils.armazenarImagem(file,imagem.toString());
//caso nao seja, salvar no disco
}else {
ByteArrayOutputStream b = new ByteArrayOutputStream();
pathImagem = imgUtils.armazenarImagem(b,item.getData(),imagem.toString());
}
}catch (Exception e) {
e.printStackTrace();
}
}
Quando o arquivo demora bastante para ser upado acho nem é executado o conteudo deste método acima, pois não dispara nenhuma exceção!
Método que armazena Imagem no sistema de arquivos:
public String armazenarImagem(ByteArrayOutputStream b,byte[] data, String imagemName) throws Exception{
b.write(data);
File file = new File(project_home+"//arquivos//"+imagemName);
b.writeTo(new FileOutputStream(file));
return project_home+"//arquivos//"+imagemName;
}
OBS.: Nenhuma exceção é disparada qdo o upload não é efetuado.
codigo da página .xhtml
<r:fileUpload fileUploadListener="#{anuncioBean.upload}"
addControlLabel="Enviar" clearAllControlLabel="Limpar Todos" clearControlLabel="Limpar" maxFilesQuantity="6" reRender="table2" id="upload" immediateUpload="true" acceptedTypes="jpg, gif, jpeg"
>
<a4j:support event="onuploadcomplete" reRender="table2" ajaxSingle="true"/>
</r:fileUpload>
Filtro do richfaces no WEB.XML
<filter>
<display-name>RichFaces Filter</display-name>
<filter-name>richfaces</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
<init-param>
<param-name>createTempFiles</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>maxRequestSize</param-name>
<param-value>550000</param-value>
</init-param>
</filter>
Att. Dirceu
me ajudou