[Cascavel-pm] renomear imagem durante upload

diogo86 em gmail.com diogo86 em gmail.com
Terça Junho 15 04:12:33 PDT 2010


Ricardo,

não tenho certeza de que API é essa nem o que $arquivo é exatamente,
mas pelo o que você postou, "$arquivo" (numa string) retorna o nome do
arquivo enviado, mesmo que $arquivo seja usado também no contexto de
file handle.

Já que não é esse nome que você quer, presumo que basta trocar
">$diretorio/$arquivo" para ">$diretorio/$cliente.jpg".

Provavelmente você vai querer tratar a extensão do arquivo e talvez
até salvar o mime type no banco, mas aí já é com você ;)


Diogo

2010/6/14 Ricardo Stock <ricardostock em bol.com.br>:
> Boa tarde a todos
>
> minha duvida seria como renomear um arquivo antes de gravar o mesmo, ou
> duratne.
>
> Estou fazendo um upload de arquivos, onde cada imagem, teria como nome o Id
> de registro. faço o upload normalmente, mas nao sei como fazer para trocar o
> nome do arquivo, pois nao quero que o usuario tenha que renomear o mesmo.
> Ex foto0001.jpg  renomeia para ID.jpg
>
> PS: Não quero gravar a imagem no banco.
>
>
> Veja o codigo
>
> sub Upload_Imagem {
>
>   $| = 1;
>
>   my $arquivo=param('arquivo'); #arquivo de imagem
>   my $cliente=param('cliente'); #campo do tipo hidden com o id do cliente
>
>   my ($byte,$buffer,$byteread);
>   my $diretorio="/home/htdocs/clientes/nome_cliente/album";
>
>
>
>   ## Pergunta, como renomear o arquivo de forma que fique id.jpg ??
>   ## minha duvida é como renomear o arquivo pois na variavel $arquivo tenho
> o nome do arquivo e o conteudo,
>   ## que é a propria imagem, como trocar somente nome
>   ## tentei $novo_nome=$arquivo, mas gravo a imagem sem bytes nenhum.
>
>   #Gravo o arquivo
>   open (UPLOAD, ">$diretorio/$arquivo") || die "Erro $!";
>   binmode UPLOAD;
>
>           while ($byte = read($arquivo,$buffer,1024)) {
>                 $byteread += $byte;
>                 print UPLOAD $buffer;
>
>                 }
>
>   close($arquivo);
>   close(UPLOAD);
>
>
>   #Grava o nome da imagem no banco
>   #$sth=$dbh->prepare("update tb_cliente set imagem='$imagem' where
> id_cliente='$cliente'");
>   #$sth->execute() || die "Erro ao registrar a imagem $DBI::errstr";
>   #$sth->finish();
>
>   print "a imagem foi carregada com sucesso.\n";
>
> }
>
>
>
>
>
> Ricardo Stock
> ricardostock em bol.com.br
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>


Mais detalhes sobre a lista de discussão Cascavel-pm