[Logo] Neo Framework Forum
  [Search] Busca   [Recent Topics] Tópicos Recentes   [Members]  Lista de Usuários   [Groups] De volta para a página principal 
[Register] Registrar / 
[Login] Entrar 
Gravar Imagem no Banco  XML
Índice dos Fóruns -> Dúvidas
Autor Mensagem
Tchaco
Equipe

Membro desde: 18/02/2009 22:17:16
Mensagens: 9
Offline

Boa tarde.

Tenho um campo BLOB e queria gravar a imagem nele, então, gostaria de saber se o NEO tem alguma classe ou método que grava uma imagem no banco de dados?
Se tiver, qual o procedimento que devo seguir?
giovanejfreitas
Equipe
[Avatar]
Membro desde: 13/10/2009 16:02:13
Mensagens: 7
Localização: Belo Horizonte
Offline

Bom dia,

Tem um tutorial apresentando o suporte a arquivos do Neo, acesse em http://www.neoframework.org/siteneo/tutorial/ver/24/Adicionando_suporte_a_upload_de_arquivos_no_NEO

Atenciosamente,
Giovane Freitas
rogel.garcia
Xiita

Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline

Você pode ver a documentação do hibernate para mais detalhes sobre como mapear campos BLOB... além do tutorial citado pelo giovane..

No exemplo do upload de arquivos, para salvar os dados no banco de dados é importante voce NÃO ANOTAR com @Transient o método getContents() (ou o método mapeado no banco com o byte[]) . E também será necessário criar os seguintes métodos vazios no seu ArquivoDAO:

Code:
 	/**
 	 * Método sobrescrito para cancelar o salvamento em disco.<BR>
 	 * A persistencia será feita no banco.
 	 */
 	@Override
 	protected void readFile(File arquivo) {
 	}
 
 	/**
 	 * Método sobrescrito para cancelar o salvamento em disco.<BR>
 	 * A persistencia será feita no banco.
 	 */
 	@Override
 	protected void writeFile(File arquivoNovo, String nomeArquivo) throws IOException {
 	}
 
 	/**
 	 * Método sobrescrito para cancelar o salvamento em disco.<BR>
 	 * A persistencia será feita no banco.
 	 */
 	@Override
 	protected void deleteFile(String nomeArquivo) {
 	}
 
Tchaco
Equipe

Membro desde: 18/02/2009 22:17:16
Mensagens: 9
Offline

Segui os procedimentos de acordo com o tutorial e a imagem foi gravada na pasta: C:\Documents and Settings\usuario\dados\aplicacao\arquivos\arquivo1.neo

Acontece que quando eu chamo a propriedade arquivo na minha pagina jsp, ele busca pelo caminho: http://localhost:8080/aplicacao/modulo/imagem.jpg
e a imagem não aparece na tela.

Teria que configurar mais alguma coisa para a imagem aparecer?
Teria como tambem mudar o diretorio onde a imagem é salva, tipo no WEB-INF/imagens ou na raiz da aplicação(WebRoot/imagens)?
Tchaco
Equipe

Membro desde: 18/02/2009 22:17:16
Mensagens: 9
Offline

Pessoal, ja consegui resolver meu problema.

Alterei o metodo no ArquivoDAO para salvar na raiz do projeto

Code:
 @Override
 	protected String getSaveDir() {
 		String pathArquivos = NeoWeb.getRequestContext().getServletRequest().getSession().getServletContext().getRealPath("");
 
 		return pathArquivos + "/arquivos";
 	}
 


e no jsp
<img src="${app}/arquivos/arquivo${arquivo.cdarquivo}.neo" />

Funcionou perfeitamento..
rogel.garcia
Xiita

Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline

No JSP você também tem a seguinte opção:

<img src="${app}/DOWNLOADFILE/${arquivo.cdarquivo}" />

Dessa forma você conseguirá fazer o download do arquivo independentemente de onde ele estiver.

Como você está salvando o arquivo dentro da aplicação, tome cuidado para não apagar os arquivos ao fazer uma nova publicação.
O NEO salva por default em uma pasta diferente para evitar esse tipo de problema.

Se tiver outras duvidas é só perguntar...

Até mais
 
Índice dos Fóruns -> Dúvidas
Ir para:   
Powered by JForum 2.1.7 © JForum Team