Considerando um sistema Web do tipo álbum de fotos (mostrar várias imagens nas páginas.jsp), implementado em (Java/Servlet/Jsp) utilizando o servidor Tomcat e o bd Firebird.
Qual seria a melhor alternativa para ler/gravar essas imagens? Ler e Salvar as imagens no filesystem ou no banco? Porque?
Alguém teria algum trecho de código exemplo para cada um desses casos?
Em um projeto recente na empresa para armazenar fotos (cada uma,
com aprox. 2 megabytes, volume de fotos > 2000 mil) preferi armazenar as fotos no banco de dados.
Estou utilizando o firebird, que tem um excelente suporte a campos BLOB.
No meu caso, preferi criar um novo “banco” dimensionado exclusivamente
para as fotos. Neste caso fiz um pequeno tunning, aumentando o page-size para 16k.
Estou muito satisfeito com a performance. A manutencao é zero.
At.
Marcelo
“luciano_castilho”:
Pessoal,
Considerando um sistema Web do tipo álbum de fotos (mostrar várias imagens nas páginas.jsp), implementado em (Java/Servlet/Jsp) utilizando o servidor Tomcat e o bd Firebird.
Qual seria a melhor alternativa para ler/gravar essas imagens? Ler e Salvar as imagens no filesystem ou no banco? Porque?
Alguém teria algum trecho de código exemplo para cada um desses casos?
Mui Grato.
danieldestro
Filesystem, com certeza!
_fs
Com o sqlserver o tratamento de campos Imagem é um pouco diferente. Para adiantar alguma coisa, ele não guarda aqueles quilos de bytes nos campos.
É bem rapido, mas nao sei se outros bancos implementam isso desta forma.
luciano_castilho
Obrigado pelas opniões, porém ainda estou em dúvida.
Por exemplo, como fazer para uma página jsp exibir a imagem que esta armazenada no banco de dados, se no html deve-se indicar a imagem no formato:
<img src="imagens/nome_imagem.jpg">
Existe alguma tag para fazer esse trabalho? Ou um resultSet.getBlob() resolveria?
_fs
hehe mais ou menos isso cara. Na verdade você faz uma página como content-type img/jpg e lá você executa o servlet que pegará os bytes. Já que o content-type é imagem, aqueles bytes todos tornar-se-ão uma
Ai na página onde você quer mostrar a imagem
Barbada né?
caiofilipini
“LIPE”:
Ai na página onde você quer mostrar a imagem
Lipe, faltou vc colocar isso dentro das tags de code… :lol:
Comecei a uns 3 anos atrás um sistema armazenando as imagens no banco de dados. Era o Interbase 6 na época. No começo ficou maravilha, mas a quantidade de imagens crescia absurdamente diariamente, até que chegou a um ponto que as consultas ficavam muito lentas, até mesmo se no Select eu não trouxesse o campo de Imagem (não sei se isso tem algo haver).
Resumindo, precisei gravar tudo no filesystem, e depois disso, já faz uns 2 anos que não tenho mais dor de cabeça com esse sistema, e funciona legal.
luciano_castilho
Pergunta: vou ter que usar uma servlet só para imagens e no JSP dentro das tags img chamar essa servlet passando-lhe parametros? ex:
Ou existe alguma outra forma, por exemplo um objeto do tipo blog ou imagem que dê para passar via request ao JSP e então recuperar seu valor (imagem)?
por ex: