Struts e Hibernate - Upload de Imagem

3 respostas
B

Pessoal, gostaria de saber de como salvar uma imagem usando Hibernate e Struts, e como recupera-la do BD pra mostrar na tela, dei uma olhada na internet mas não consegui achar muita coisa relacionada com essas duas APIs.

Obrigado

abraços

3 Respostas

andreiribas

você pode fazer o upload da imagem pra uma pasta qualquer, digamos, imagens, e armazenar no banco de dados uma string, que representa o caminho do arquivo imagem.

V

Cara, não sei se esta forma é a melhor, da forma que consegui fazer, criei uma tabela de arquivos, com um campo id, outro campo BLOB para o arquivo e tb um campo para o tipo do arquivo, que assim consigo abrir certinho o arquivo a partir da jsp.
o arquivo .hbm.xml ficou assim:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  
<hibernate-mapping> 
	<class name="Arquivo" table="arquivo">
	
		<id name="id" column="id">
			<generator class="increment"/> 
		</id>
		
		<property name="arquivo" column="arquivo"/>	
		<property name="nomeArquivo" column="nomeArquivo"/>	
		<property name="tipoArquivo" column="tipoArquivo"/>
			</class>	
</hibernate-mapping>

A classe Java ficou assim:

public class Arquivo implements{

	private int id;

	private Blob arquivo;

	private String nomeArquivo;

	private String tipoArquivo;

     ... gets e sets...
}
Para recuperar o arquivo do banco com hibernate é trivial, é so buscar o registro pelo como voce faz com outras classes. Para inserir voce precisa passar o arquivo do seu form como FormFile e depois utilizar
Hibernate.createBlob(arquivoEnviado
					.getInputStream());
para poder converter para blob e gravar no banco normalmente tb.
B

Galera obrigado pelas dicas, eu estava vendo alguns exemplos na internet que diz pra usar um servlet pra mostrar a imagem do banco(caso se salve como BLOB), alguém tem algum exemplo desse servlet?

obrigado

Lincoln :lol:

Criado 2 de setembro de 2006
Ultima resposta 5 de set. de 2006
Respostas 3
Participantes 3