Autor |
Mensagem |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 01/12/2009 18:01:51
|
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?
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 02/12/2009 09:14:15
|
giovanejfreitas
Equipe
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
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 02/12/2009 20:23:28
|
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) {
}
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 03/12/2009 08:53:28
|
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)?
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 03/12/2009 10:32:03
|
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..
|
|
 |
![[Post New]](/forum/templates/default/images/icon_minipost_new.gif) 03/12/2009 19:04:03
|
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
|
|
 |
|