Salvando e recuperando imagens

4 respostas
f2pro

Pessoal, estou com uma duvida na hora de salvar e recuperar as imagens.
Utilizo como servidor web o Glassfish 3.1 e como IDE o NetBeans 7.0.1
O meu problema é o seguinte:

Se eu salvar a imagem dentro do projeto eu consigo exibir elas depois a partir da raiz do meu sistema digamos “/sistema/imagem/exemplo.jpg” porém, ao limpar e construir a imagem some, eu preciso manter as imagens uma vez que estou criando um sistema que terá atualizações constantes e não posso perder essas informações toda a vez que limpar e construir.

Por outro lado, se salvar fora do sistema o navegador (chrome e outros mais) bloqueia(m) o acessoa ela, até mesmo pelo protocolo file:///.

Eis a minha pergunta
Como faço para salvar a imagem e conseguir recuperá-la e mesmo assim não perdê-la ao limpar e construir?

Seguem os códigos abaixo de como faço para salvar a imagem

public static String gravaTemp(UploadedFile file) {
        if (file != null) {
            FacesContext ctx = FacesContext.getCurrentInstance();
            ServletContext servletContext = (ServletContext) ctx.getExternalContext().getContext();
            //String path = servletContext.getRealPath("/imagens/upload");
            //esse ConfiguracaoGlobal.getConfiguracaoGlobal().getDiretorio_empresa() me retorna o caminho absoluto do sistema para salvar o arquivo ex: "C:/arquivos e programas..." fazendo com q salve fora do projeto
            String path = ConfiguracaoGlobal.getConfiguracaoGlobal().getDiretorio_empresa() + "tmp";
            try {

                FileOutputStream outPutStream = new FileOutputStream(path + barra + time + file.getFileName());
                outPutStream.write(file.getContents());
                outPutStream.flush();
                outPutStream.close();
            } catch (IOException ex) {
            }
            return ConfiguracaoGlobal.getConfiguracaoGlobal().getDiretorio_empresa() + "tmp" + barra + time + file.getFileName();
        }
        return null;
    }

4 Respostas

pedruhenrik

é viável usar blob no banco e salvar as imagens?

att,

fabim

1 - Vc nao salva imagens dentro do seu projeto (a nao ser que sejam aquelas imagens fixas que serao sempre utilizadas em todos os front ends)
2 - Muito menos no banco
3 - Vc grava elas no diretorio, mas NAO referencia elas diretamente no front end. Vc as recupera utilizando outra servlet. Uma servlet GRAVA, outra servlet LE.

renanreismartins

oi f2 vc perde pois a cada build todos os arquivos sao apagados, salvar fora do sistema seria o ideal mesmo, com relaçao ao bloqueio vc pode fazer a propria aplicacao carrega-las para vc…

pedru salvar num blob deve ser muito bem pensado para nao atrapalhar na performance e tb nao atrapalhar em questoes de backup… nao creio que seja uma boa opcao

abrassss

f2pro

renanreismartins:
oi f2 vc perde pois a cada build todos os arquivos sao apagados, salvar fora do sistema seria o ideal mesmo, com relaçao ao bloqueio vc pode fazer a propria aplicacao carrega-las para vc…

booa… mas eu esqueci de dizer… que eu uso JSF 2.0… serve também?
flws

Criado 5 de dezembro de 2011
Ultima resposta 5 de dez. de 2011
Respostas 4
Participantes 4