Usuário com melhor resposta
Cadastrar e Atualizar Imagem

Pergunta
-
Boa tarde pessoal,
Já pesquisei vários sites mas quero entender melhor e tentar fazer...
Tenho um formulário de cadastro de equipamento que terá a possibilidade do usuário adicionar mais de 1 foto, pelo que pesquisei várias pessoas recomendam armazenar fotos no próprio servidor web e não no banco de dados, estou partindo desse principio e irei armazenar fotos em uma pasta no servidor web...
Para fazer o upload não vejo dificuldade pois temos ferramentas no mercado, a situação é para atualizar: exemplo o usuário cadastrou um equipamento e colocou 10 fotos nesse registro, depois ele terá a possibilidade de atualizar essas fotos, a pergunta é: como fazer isso?
1) Como fazer para atualizar as imagens? Imagino que tem que ter na parte do atualizar uma opção para excluir a foto e depois realizar novamente um upload, será que existe algo no mercado pronto?
2) Como recuperar as imagens conforme atualização? Exemplo: Diversos cadastros de equipamento são feitos e quando o usuário atualizar qualquer cadastro como fazer para o sistema buscar exatamente as imagens que foram inseridas nesse cadastro, qual o vinculo usar entre eles?
Obs.: nesse caso prefiro não usar gridview, trabalhando com C#, ASP.NET, VS2010 e DevExpress
Respostas
-
A meu ver você terá a tabela de cadastro do equipamento e outra tabela equipamento_caminho_nome_imagem. Relacionadas pelo ID do equipamento 1 para N. Um id equipamento teria vários caminho imagens.
Dai é só usar o aspupload para subir a imagem para o servidor e atualizar o caminho e nome da imagem na tabela.
Desta maneira quando você obter um id de equipamento perá recuperar todas as imagens ligadas a ele.
E quando or deletada uma imagem ligada ao equipamento, você eclui a imgem fisicamente da pasta e o registro na tabela que liga as imagen ao equipamento.
Ninguém falou que seria fácil!
- Marcado como Resposta Harley Araujo quinta-feira, 12 de abril de 2012 11:06
-
Boa Tarde,
Como o amigo jothaz sugeriu, vc precisa criar uma tabela "equipamento_foto" e relacionar ela a sua tabela de "equipamento". Ao realizar o cadastro blz, o cara inputa os dados do equipamento e cadastra as diversas fotos que esse equipamento pode ter. Na atualização, oq eu faria seria listar as imagens com a opção de preview e nisso ele poderia excluir essa foto e se quiser subir mais "N" fotos para o equipamento de novo. No inicio eu já respondo sua 2ª pergunta, a forma de vc realizar o vinculo entre as fotos e o equipamento seria pela tabela.
CREATE TABLE equipamento_foto ( foto_id INT IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, foto_equipamento_id INT NOT NULL, foto_name VARCHAR(100), foto_description VARCHAR(150) --Campo Opcional )
Espero ter ajudado
Abcs
- Marcado como Resposta Harley Araujo quinta-feira, 12 de abril de 2012 11:06
-
Gulherme,
Atualizar a imagem isso com certeza nao vai dar,vc vai ter que exluir a imagem
se vc gravou o caminho ou o nome da imagem em uma tabela, otimo, vc pode usar o namespace System.io e utilizar o comando
File.Delete(Server.MapPath("teste.jpg")); para deletar a imagem ai sim vc pode atulizar a linha do registro para uma nova informação.
amigão, ai vai uma dica, é muito mais facil tabalhar com a imagem em banco do que em diretorio.
da uma olhada nesta thread, http://social.msdn.microsoft.com/Forums/pt-BR/webgeralpt/thread/3612257e-af93-4fd9-99fd-12f2b1d0000f/
nao tem novidade amigão.
boa sorte!
Herbert Agles
Se a resposta contribuiu com a sua necessidade, não se esqueça de marcá-la, assim você beneficiará outros usuários. Sua dúvida também pode ser as de outros!- Marcado como Resposta Harley Araujo quinta-feira, 12 de abril de 2012 11:06
Todas as Respostas
-
A meu ver você terá a tabela de cadastro do equipamento e outra tabela equipamento_caminho_nome_imagem. Relacionadas pelo ID do equipamento 1 para N. Um id equipamento teria vários caminho imagens.
Dai é só usar o aspupload para subir a imagem para o servidor e atualizar o caminho e nome da imagem na tabela.
Desta maneira quando você obter um id de equipamento perá recuperar todas as imagens ligadas a ele.
E quando or deletada uma imagem ligada ao equipamento, você eclui a imgem fisicamente da pasta e o registro na tabela que liga as imagen ao equipamento.
Ninguém falou que seria fácil!
- Marcado como Resposta Harley Araujo quinta-feira, 12 de abril de 2012 11:06
-
Boa Tarde,
Como o amigo jothaz sugeriu, vc precisa criar uma tabela "equipamento_foto" e relacionar ela a sua tabela de "equipamento". Ao realizar o cadastro blz, o cara inputa os dados do equipamento e cadastra as diversas fotos que esse equipamento pode ter. Na atualização, oq eu faria seria listar as imagens com a opção de preview e nisso ele poderia excluir essa foto e se quiser subir mais "N" fotos para o equipamento de novo. No inicio eu já respondo sua 2ª pergunta, a forma de vc realizar o vinculo entre as fotos e o equipamento seria pela tabela.
CREATE TABLE equipamento_foto ( foto_id INT IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, foto_equipamento_id INT NOT NULL, foto_name VARCHAR(100), foto_description VARCHAR(150) --Campo Opcional )
Espero ter ajudado
Abcs
- Marcado como Resposta Harley Araujo quinta-feira, 12 de abril de 2012 11:06
-
Gulherme,
Atualizar a imagem isso com certeza nao vai dar,vc vai ter que exluir a imagem
se vc gravou o caminho ou o nome da imagem em uma tabela, otimo, vc pode usar o namespace System.io e utilizar o comando
File.Delete(Server.MapPath("teste.jpg")); para deletar a imagem ai sim vc pode atulizar a linha do registro para uma nova informação.
amigão, ai vai uma dica, é muito mais facil tabalhar com a imagem em banco do que em diretorio.
da uma olhada nesta thread, http://social.msdn.microsoft.com/Forums/pt-BR/webgeralpt/thread/3612257e-af93-4fd9-99fd-12f2b1d0000f/
nao tem novidade amigão.
boa sorte!
Herbert Agles
Se a resposta contribuiu com a sua necessidade, não se esqueça de marcá-la, assim você beneficiará outros usuários. Sua dúvida também pode ser as de outros!- Marcado como Resposta Harley Araujo quinta-feira, 12 de abril de 2012 11:06