Socorro [erro] upload de arquivo em jsf

10 respostas
kurama

<input type=“file”>
qual seria o correspondente em JSF? existe alguma tag que ja gerencia esse upload e que facilite minha vida?
desde já agradeço.

10 Respostas

Hempx

kurama:
<input type=“file”>
qual seria o correspondente em JSF? existe alguma tag que ja gerencia esse upload e que facilite minha vida?
desde já agradeço.

Use o inputFileUpload do tomahawk.
O myfaces-example-simple que é disponibilizado pelo mesmo pessoal do myfaces tem um exemplo de como usar esse componente.

kurama

valeu ae, vou ver o exemplo e tentar utilizá-lo… :lol:

kurama

opa, hehehe…
olhei la o inputFileUpload, na api diz que existe um exempo em “examples/web/fileupload.jsp” mas nao consegui acessar…
onde pego esse myfaces-example-simple?

kurama

ae… estou tento do seguinte erro:

exception

javax.servlet.ServletException: Filter execution threw an exception

root cause

java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUpload
	org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:114)

eu estou tentando usar o inputFileUpload recomendado pelo Hempx. peguei o myfaces-example-simple e dei uma olhada lá. No exemplo tem alguns fitlros colocados no web.xml que eu copiei e adicionei no meu web.xml para poder usar o inputFileUpload. só que como podem ver está me retornando um erro. ja chequei se tenho todas as libs necessárias e sim, está tudo lá. não sei como resolver esse problema, alguem podia me dar uma mão?
na referência http://myfaces.apache.org/tomahawk/tlddoc/t/inputFileUpload.html , fala para habilitar o filtro multipart será que não habilitei esse filtro corretamente?

kurama

olá pessoal, eu estou tendo dificuldades com o upload de arquivo usando essa tag do tomahawk <t:inputFileUpload>
eu segui um tutorial http://www.onjava.com/pub/a/onjava/2005/07/13/jsfupload.html apenas trocando o myfaces-common pelo tomahawk…
só que aqui pra mim nao funcionou, configurei o web.xml com os filtros apresentados no tutorial, criei um uploadBean so de teste contendo:

import org.apache.myfaces.custom.fileupload.UploadedFile;

public class UploadBean {
	private UploadedFile arquivo;	
	private String nomeArquivo;
	private long tamanhoArquivo;

	public String getNomeArquivo() {
		return nomeArquivo;
	}

	public void setNomeArquivo(String nomeArquivo) {
		this.nomeArquivo = nomeArquivo;
	}

	public long getTamanhoArquivo() {
		return tamanhoArquivo;
	}

	public void setTamanhoArquivo(long tamanhoArquivo) {
		this.tamanhoArquivo = tamanhoArquivo;
	}

	public UploadedFile getArquivo() {
		return arquivo;
	}

	public void setArquivo(UploadedFile arquivo) {
		this.arquivo = arquivo;
	}	
	
	public String mostrarArquivo() {
		setNomeArquivo(arquivo.getName());
		setTamanhoArquivo(arquivo.getSize());
		return null;				
	}
}

E meu jsf ficou assim:

&lt;f:view&gt;
			&lt;h:form enctype="multipart/form-data"&gt; 
				&lt;h:outputLabel value="Arquivo: " for="arquivo" /&gt;
				&lt;t:inputFileUpload id="arquivo"					
                    value="#{uploadBean.arquivo}"
                    storage="file"
                    required="true" /&gt;
                <br />
                &lt;h:commandButton action="#{uploadBean.mostrarArquivo}" value="Enviar" /&gt;
                <br />				
				&lt;h:outputText value="Nome: " /&gt;&lt;h:outputText value="#{uploadBean.nomeArquivo}" /&gt;<br />
				&lt;h:outputText value="Tamanho: " /&gt;&lt;h:outputText value="#{uploadBean.tamanhoArquivo}" /&gt;				
			&lt;/h:form&gt;			
		&lt;/f:view&gt;

O que acontece eh que depois que eu clico em enviar o nome e o tamanho do arquivo nao aparecem… estou usando o escopo de request para o bean… será que alguem sabe me ajudar, alguem que ja mexeu com isso? Estou com uma certa urgencia em relação a isso!!!
Valeu!

urubatan

kurama:
ae… estou tento do seguinte erro:

exception

javax.servlet.ServletException: Filter execution threw an exception

root cause

java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUpload
	org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:114)

eu estou tentando usar o inputFileUpload recomendado pelo Hempx. peguei o myfaces-example-simple e dei uma olhada lá. No exemplo tem alguns fitlros colocados no web.xml que eu copiei e adicionei no meu web.xml para poder usar o inputFileUpload. só que como podem ver está me retornando um erro. ja chequei se tenho todas as libs necessárias e sim, está tudo lá. não sei como resolver esse problema, alguem podia me dar uma mão?
na referência http://myfaces.apache.org/tomahawk/tlddoc/t/inputFileUpload.html , fala para habilitar o filtro multipart será que não habilitei esse filtro corretamente?


este erro é só por que tu esqueceu de colocar o commons-fileupload e o commons-io no classpath :smiley:

Passei por isto ontem :smiley:

kurama

esqueci de mencionar, mas esse erro eu ja havia solucionado.
o problema agora eh que eu escolho o arquivo que quero enviar, envio, mas parece que o managed bean que eu criei nao consegue tratar ele, pq não tenho nada de retorno na minha página!

P

Opa bom dia!
vc chegou a configurar o web.xml ?
parece que faltou isso mano:

<!-- Extensions Filter -->
<filter>
	<filter-name>extensionsFilter</filter-name>
	<filter-class>
		org.apache.myfaces.component.html.util.ExtensionsFilter
	</filter-class>
	<init-param>
		<param-name>uploadMaxFileSize</param-name>
		<param-value>100m</param-value>
	</init-param>
	<init-param>
		<param-name>uploadThresholdSize</param-name>
		<param-value>100k</param-value>
	</init-param>
	<!--        <init-param>
		<param-name>uploadRepositoryPath</param-name>
		<param-value>/temp</param-value>
		<description>Set the path where the intermediary files will be stored.
		</description>
		</init-param>-->
</filter>
P

abs

thimor

urubatan:
kurama:
ae… estou tento do seguinte erro:

exception

javax.servlet.ServletException: Filter execution threw an exception

root cause

java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUpload
	org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:114)

eu estou tentando usar o inputFileUpload recomendado pelo Hempx. peguei o myfaces-example-simple e dei uma olhada lá. No exemplo tem alguns fitlros colocados no web.xml que eu copiei e adicionei no meu web.xml para poder usar o inputFileUpload. só que como podem ver está me retornando um erro. ja chequei se tenho todas as libs necessárias e sim, está tudo lá. não sei como resolver esse problema, alguem podia me dar uma mão?
na referência http://myfaces.apache.org/tomahawk/tlddoc/t/inputFileUpload.html , fala para habilitar o filtro multipart será que não habilitei esse filtro corretamente?


este erro é só por que tu esqueceu de colocar o commons-fileupload e o commons-io no classpath :smiley:

Passei por isto ontem :D

Onde eu consigo esses jars pois baixei o myfaces e o tomahawk coloquei no classpath da aplicacao e nao resolve o problema.

Criado 25 de julho de 2006
Ultima resposta 20 de ago. de 2008
Respostas 10
Participantes 5