[i]Galera preciso de ajuda mais uma vez…
Estou fazendo um cadastro e neste cadastro tenho um campo que o usuário pode fazer upload de uma foto, consigo fazer o upload só que preciso salvar esta imagem em algum lugar do servidor e depois exibi-la no browser quando for solicitado.
Tentei da seguinte forma:[/i]
public void handleFileUpload(FileUploadEvent event) {
foto = event.getFile().getContents();
fileName = event.getFile().getFileName();
fileType = event.getFile().getContentType();
ServletContext context = (ServletContext) FacesContext
.getCurrentInstance().getExternalContext().getContext();
File file = new File(
context.getRealPath("/imagens/"+ new SimpleDateFormat("dd-MM-yyyy").format(new Date())));
if (!file.exists()) {
file.mkdirs();
}
filePath = file + "\\" + fileName;
criaArquivo(foto, filePath);
}
private void criaArquivo(byte[] bytes, String file) {
FileOutputStream outputStream;
try {
outputStream = new FileOutputStream(file);
outputStream.write(bytes);
outputStream.close();
} catch (FileNotFoundException e) {
LOGGER.error(e.getMessage());
} catch (IOException e) {
LOGGER.error(e.getMessage());
}
}
[i]Estas imagens estão sendo armazenadas corretamente e o caminho esta sendo gravado no banco corretamente também, porém não sei como faço para exibi-las num datatable, por exemplo.
Estou usando JSF2 + Primefaces.
E outra duvida, gravando estas imagens no contexto da aplicação, terei algum problema futuro referente a perder as imagens por estarem no contexto??
Obrigado galera.[/i]