Imagem do Produto

Boa tarde pessoal,

Tenho a seguinte dúvida, to criando um form de cadastro de produtos, qual tipo de campo devo escolher para o campo “Foto do Produto” ?, deve ser o Imagem (Banco de Dados), Imagem (Nome do Arquivo), Documento (Banco de Dados) ou Documento (Nome do Arquivo) ?, salientando que gostaria que na consulta a tabela de produtos a mesma mostrasse a foto do produto, sem ser necessário clicar no botão detalhe do produto.

Outra pergunta, qual o tipo de campo que devo criar no MySQL ?

Imagem no Banco (Tipo LongBlob)

Vantagem:
1-Seu backup traz as fotos junto
2-Aplicações legadas podem ter acesso as imagens sem usar o protocolo http
3-Não precisa se preocupar com o nome da imagem (do arquivo)

Desvantagem: ao visualizar a imagem, esta tem que ser escrita em disco no momento da visualização.

Imagem em Arquivo (Campo do tipo texto)

Vantagem:
1- A imagem está em disco, o acesso é imediato

Desvantagem
1- backup tem que ser da pasta de imagens e do banco de dados
2- deve haver uma preocupação com o nome da imagem, não pode ser repetir

Como eu utilizo:

Em banco de dados.
Desenvolvi uma classe, para verificar se o arquivo imagem existe em disco, se não ele lê do banco e cria, se sim, apenas exibe.

Show a sua explanação Haroldo, só me responde uma coisa qual o tipo de campo que devo criar no MySQL ?

Eu Utilizo Imagem em Arquivo (Campo do tipo texto).
Por padrao gravo o nome da imagem com ID da chave primaria da tabela,
para nunca haver duplicidade. Ex: 000001.jgp, 000002.jpg,etc.

Att,
Paulo.

LongBlob

Pessoal o seguinte, não estou conseguindo ver as imagens dos produtos, tanto na edição do form, quanto na consulta, coloquei a opção “Imagem Banco de Dados”, o que posso estar fazendo de errado?

Bom dia pessoal, alguém pode me ajudar com este problema ?

Parece ser erro de permissão na pasta /_lib/tmp/ em ambos os casos citados acima a pasta tmp tem que ter permissõa de escrita.

Saulo acho que coloquei 777 na pasta, mais vou confirmar, vlw

Sei que é antigo mas te pergunto:
1)Permanece guardando as imagens no banco?
2)Qual o maior número de imagens que possui?
3)Qual o tamanho maior de banco que tem do seu sistema? Se for multiempresa, qual o atual tamanho?
4)Usa alguma rotina para reduzir a imagem antes de enviar para o banco? Poderia compartilhar?

Esse projeto sobre as imagens ainda está em produção.
A base hoje tem 2T.
As imagens são redimensionadas até 2mb cada antes de salvar no banco.
O projeto está na versão 4 do SC.
Não é mult empresa.
Não tenho mais v4 mas a rotina de redimensionamento é simples.

1 Curtida

Meu amigo… você me impressiona, este relato é importantíssimo para mim… então na sua concepção fazer tal salvando imagens em bd é mais interessante que diretório, certo? Sem perca de performance?

Minha sugestão é verificar se a imagem está em disco, se não, buscar no banco de dados a imagem e salvar no disco.A exibição da imagem dever ser baseada no arquivo físico (<IMG SRC=../_lib/img/empresa/000001.jpg />). Dessa forma o browser cria os caches da imagem não buscando a mesma no servidor e sim na máquina local do browser. O volume de dados irá se duplicar, mas não acho relevante a questão de espaço em disco, afinal, hoje temos recurso de sobra nesse quesito.

Minha questão principal é a salva guarda das imagens. O backup do banco de dados deve compor toda informação que o cliente (usuário) “inputa” no sistema, não apenas dados escritos mas os uploads de arquivos também. Veja bem, essa é uma opinião pessoal minha. Há quem discorda ou diverge dessa minha opinião.

Usar uma tabela só para imagens também é uma das minhas observações.

1 Curtida

Então, pelo que estou vendo seria realmente gravar tudo em diretório…
Mas agradeço sua opinião, colaborou muito para sanar a dúvida do caminho a seguir…

Na questão performance, sim em disco e dependendo do uso (por exemplo loja virtual) criar 3 cópias da imagem miniatura, tamanho médio e tamanho grande para zoom ( THUMBMAIL ).

Na questão segurança: em banco de dados. (só salvar o tamanho grande).

Se quer performance e segurança: utilizar os 2 métodos.

Perfeito…!!! Melhor que isto só as aplicações prontas…
Obrigado!