Fórum Trabalhar com Imagem #7859
23/07/2009
0
Essa é a melhor solução? é melhor que armazenar a imagem direto no banco?
Para fazer o uploud utilizo o componente Upload, do D4PHP, apesar de facilitar, alguns controles, como tamanho de arquivo, verificar se é imagem etc..., não dá estabilidade na aplicação, não tenho certeza que o upload foi feito corretamente, ou o usuario pode clicar em outra coisa, o sistema fazer o upload e não a referencia no banco, e meu diretorio ficar cheio de imagens inuteis...
O que estou prescisando:
Um script javascrit que paralise toda a tela até o upload ser concluido;
E quando excluir do banco o resgistro que contenha a respectiva foto, apague também o arquivo no diretorio.
Cristiano,
Cristiano Barreto
Curtir tópico
+ 0Posts
23/07/2009
Rodrigo Mourão
Agora para apagar o arquivo vc pode usar a função unlink e passar o caminho do arquivo que vc quer apagar. Esse exemplo faz usso recursivamente
function unlinkRecursive($dir, $deleteRootToo)
{
if(!$dh = @opendir($dir))
{
return;
}
while (false !== ($obj = readdir($dh)))
{
if($obj == '.' || $obj == '..')
{
continue;
}
if (!@unlink($dir . '/' . $obj))
{
unlinkRecursive($dir.'/'.$obj, true);
}
}
closedir($dh);
if ($deleteRootToo)
{
@rmdir($dir);
}
return;
}
Agora vai um conselho, nas minhas aplicações eu tenho um diretorio resources. Dentro dele eu coloco as imagens e gravo o caminho do banco. Agora para cada cliente ou produto ou seja o que for eu crio um pasta, ou seja, detro de de resource eu teria uma pasta chamada product_1254 que guardaria todas as imagens do produto de código 1254 quando eu deletar este produto deleto esta pasta e não as vinte imagens por exemplo que possam ter la dentro.
É apenas uma sugestão !!
Fico no aguardo !!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Gostei + 0
25/07/2009
Rodrigo Mourão
As dicas Ajudaram ? Estamos aguardando para encerrar o chamado.
Abs.
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Gostei + 0
25/07/2009
Cristiano Barreto
Gostei + 0
27/07/2009
Rodrigo Mourão
Abs!
Gostei + 0
28/07/2009
Rodrigo Mourão
Estaremos colocando o chamado como concluido.
Caso haja alguma outra dúvida basta postar que reabriremos o chamado.
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Gostei + 0
30/07/2009
Cristiano Barreto
a função unlinkRecursive, como apaga todo o diretorio, eu teria que ter também uma função para criar um diretorio(em tempo de execução) a medida que se cadastra um imovel, as fotos daquele imovel, naquele diretorio. e quando excluido a função unlinkRecursive.
A função PHP unlink, não conseguir fazer funcionar corretamente, então utilizei a função do proprio componetne upload isUpLoadFile $this->upfoto->isUploadedFile($this->upfoto->moveUploadedFile($path.$filename.'_1.'.$ext))
Bem, em resumo, presciso apargar as imagens no diretorio ou de uma função para criar o diretorio em tempo de execução para usar o unlinkrecursive.
Cristiano,
Gostei + 0
30/07/2009
Rodrigo Mourão
Se observer bem no meu post la em baixo e sugestao que te dei foi justamente criar um diretorio por registro, segue função:
mkdir("Caminho do Diretorio que quer criar",0777);
Abs!!
Gostei + 0
31/07/2009
Cristiano Barreto
Usei esta função, funcionou na primeira inserção, mais aparti da segunda, não, porque o diretorio já existia e dá erro, presciso testar se o diretorio existe antes de executar a função.
Cristiano,
Gostei + 0
31/07/2009
Rodrigo Mourão
Vc pode usar a função is_dir. Esta função retorna verdadeiro se o cominho passa é um diretorio ou false se não e um diretorio ou se ele não existe.
Você pode usar assim:
if (!is_dir("Caminho do Diretorio que quer ver se existe")){
mkdir("Caminho do Diretorio que quer criar",0777);
}
Repare no exclamação antes do comando, essa é a negação do PHP, ou seja, se o diretorio não existir.
Espero que ajude.
abs
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Gostei + 0
02/08/2009
Rodrigo Mourão
A função ajudou? Estamos aguardando para encerrar o chamado !!
Abs!!
Atenciosamente,
Rodrigo Carreiro Mourão
Borland Instructor Certified
Coordenador da Consultoria em Delphi
Gostei + 0
02/08/2009
Cristiano Barreto
Cristiano,
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)