FileUpload

Olá Pessoal!

Gostaria de saber se alguém tem algum exemplo de como fazer um upload de imagem, usando o componente FileUpload do JSF?

Obrigada.

Vera.

esta usando algum framework alem do JSF?

Ve se estes fragmentos te ajudam, olha o uploadListener da classse OCSegundaVia.

Links que utilizei para criar o meu…
para método fileToByteArray:
http://www.exampledepot.com/egs/java.io/File2ByteArray.html

Para o resto
http://livedemo.exadel.com/richfaces-demo/richfaces/fileUpload.jsf;jsessionid=8931E687CB4A95AB3BB8756C5560BBD0?c=fileUpload&tab=usage

<rich:fileUpload 
	fileUploadListener="#{OCSegundaVia.uploadListener}"
	id="upload"
	immediateUpload="true"
	acceptedTypes="pdf"
	listHeight="62px">
	<a4j:support event="onuploadcomplete" reRender="info" />
</rich:fileUpload>
import org.richfaces.model.UploadItem;

...

private UploadItem uploadItem;
	
...

public UploadItem getUploadItem() {
	return uploadItem;
}


public void setUploadItem(UploadItem uploadItem) {
	this.uploadItem = uploadItem;
}

...

public String uploadListener(UploadEvent event){
                setUploadItem(event.getUploadItem());
                
                ...
                
                byte [] arquivoParaEmissor = fileToByteArray(getUploadItem().getFile());
                
                ...

}

....

	protected byte[] fileToByteArray(File file) throws IOException{
		
		InputStream is = new FileInputStream(file);
        
        // Obtém o tamanho de arquivo
        long length = file.length();
        
        //Verifica seu tamanho
        if (length > Integer.MAX_VALUE) {
            throw new IOException("Arquivo grande demais: " + file.getName());
        }
        
        // Cria um array de bytes para armazenar arquivo
        byte[] bytes = new byte[(int)length];
        
        // Carrega array de bytes com dados do arquivo
        int offset = 0;
        int numRead = 0;
        
        //Leitura do arquivo
        while (offset < bytes.length && (numRead=is.read(bytes, offset, bytes.length-offset)) >= 0) {
            offset += numRead;
        }

        // Verificar se realmente todo o arquivo foi lido, comparando com 
        if (offset < bytes.length) {
            throw new IOException("Não foi possível ler todo o arquivo: " + file.getName());
        }

        // Finalizando operação
        // Fechado conexação Stream
        is.close();
		return bytes;
}

Até

Aurélio B. Silva

Cara… para fazer upload de arquivos existe uma API muito interessante que é a Commons FileUpload, da Apache. Achei ela bem legal e fácil de utilizar
Se lhe interessar, dê uma pesquisada sobre ela.

Abraços