Upload de Arquivo com Tomahawk (JSF)

0 respostas
secco

Estou com um sério problema para fazer upload com JSF, usando Tomahawk.
Revirei a internet inteira hoje, e nada de funcionar.
:(
Tenho os seguintes arquivos:

MyForm.jsp
<h:form id="MyForm" enctype="multipart/form-data" >
	<t:outputLabel for="myFileId" value="File: " />
	<t:inputFileUpload id="myFileId"
			storage="file"
			value="#{UploadBean.myUploadedFile}"
			required="true"/>
	<h:message for="myFileId" />
	<h:inputText value="#{UploadBean.teste}" />
	
	<h:commandButton value="Enviar" action="#{UploadBean.save}" />

<h:outputText value="Teta: " />
<h:outputText value="#{UploadBean.teste}" />

</h:form>
UploadBean.java
package meupacote.controller;

import java.io.File;
import java.io.FileOutputStream;

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

public class UploadBean {

	private UploadedFile myUploadedFile;
	private String teste;

	public String getTeste() {
		return teste;
	}

	public void setTeste(String teste) {
		this.teste = teste;
	}

	public UploadedFile getMyUploadedFile() {
		return myUploadedFile;
	}

	public void setMyUploadedFile(UploadedFile myUploadedFile) {
		this.myUploadedFile = myUploadedFile;
	}

	public String save() {
		try {
			this.myUploadedFile.getInputStream();
			String base = "/teste";
			
			File f = new File("ss");
			FileOutputStream fos = new FileOutputStream(base+this.myUploadedFile.getName());
			fos.write(this.myUploadedFile.getBytes());
			fos.close();
			System.out.println("Done");

		} catch (Exception e) {
			e.printStackTrace();
		}

		return "true";
	}
}
faces-config.xml
<managed-bean>
		<managed-bean-name>UploadBean</managed-bean-name>
		<managed-bean-class>meupacote.controller.UploadBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>

	<navigation-rule>
		<navigation-case>
			<from-outcome>true</from-outcome>
			<to-view-id>/MyForm.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>

Pelos testes e debugs que fiz, os métodos save() e os getters nunca são acionados.
Quando tiro do form a opção enctype="multipart/form-data", estes métodos são acessados e o valor do texto é setado, porém com o upload nada acontece. Aliás, o upload não funciona nunca.

Alguém tem uma idéia do que eu faço?

Abraços
Grato
Diego Stiehl

Criado 25 de novembro de 2008
Respostas 0
Participantes 1