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.
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
<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