Ir para conteúdo
Fórum Script Brasil
  • 0

renomear foto ao fazer upload


cwarez

Pergunta

bom galera

eu uso o seguinte codigo para fazer o cadastro do usuario no meu site

if($acao == 'enviar') { /*Faz o upload da imagem */



if($imagem <> 'none') { /*verifica se veio vazio */

if(($imagem_type <> 'image/gif') AND ($imagem_type <> 'image/pjpeg') AND ($imagem_type <> 'image/png')) { /*verifica o tipo da imagem*/
$erros++;
$errors = $errors."Tipo de arquivo inválido<br>";
}

if($imagem_size > 1000000) { /*verifica o tamanho da imagem enviada */
$erros++;
$errors = $errors."O tamanho do arquivo é maior que 1000 K<br>";
}

$arquivo = "clicalista/c_banners/$imagem_name"; /*caminho pra onde vai a imagem*/

if (file_exists($arquivo)) { /*verifica se o arquivo existe no diretório */
$erros++;
$errors = $errors."O arquivo já existe, por favor renomeie o arquivo<br>";
} /*fecha verificação do arquivo*/
} /*fecha mapa <> none*/

if($erros == 0) {
copy($imagem, "clicalista/c_banners/$imagem_name"); /*envia a imagem para a pasta*/
}/* fecha erros = 0 */

else {

}/*fecha else*/

$sql = mysql_query("INSERT INTO `c_clicalista` (`cat_id`,`nome`,`nome_1`,`cpf`,`nome_contato`,`login`,`senha`,`site`,`breve_desc`,`email`,`telefones`,`como_chegar`,`desc`,`status`,`logomarca`) VALUES ('$cat','$anuncio','$n','$cpf','$nome_contato','$login_','$senha_','$site','$breve_desc','$email','$telefones','$como_chegar','$desc','Aguardando Pagamento','$imagem_name');")
or die("Erro no SQL: ".mysql_error()); /*Insere o nome da figura no banco de dados*/
echo "<BR><BR><p align=\"center\"><font face=\"Verdana\" size=\"2\">Publicidade cadastrada com
sucesso!<BR>Clique aqui para confirmar o
pagamento</font></p>";


}/* fecha acao=enviar*/

bom, queria saber aonde modifico para que o nome da imagem seje renomeado como um nome de 32 caracteres usando o algorítimo md5.

se alguém puder me ajudar

vlww pessoal

muito obrigado

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
bom galera

eu uso o seguinte codigo para fazer o cadastro do usuario no meu site

bom, queria saber aonde modifico para que o nome da imagem seje renomeado como um nome de 32 caracteres usando o algorítimo md5.

Tenta mudar a linha:

copy($imagem, "clicalista/c_banners/$imagem_name"); /*envia a imagem para a pasta*/
para
copy( $imagem , sprintf( "clicalista/c_banners/%s" , preg_replace_callback( "/(\\w+)\\.(\\w{3})/" , create_function( '$mtc',
    'return( sprintf( "%s.%s" , md5( $mtc[ 1 ] ) , $mtc[ 2 ] ) );'
) , $imagem_name  ) ) );

Editado por neto.joaobatista
Link para o comentário
Compartilhar em outros sites

  • 0

td certo

mas ai, qual é a variavel que representa o nome da imagem, transformado em md5?

pois esta renomeando certinho,

porem, o nome que ta cadastrando no banco de dados, é o nome original e não o codificado

como resolver?

abraços !

Link para o comentário
Compartilhar em outros sites

  • 0
mas ai, qual é a variavel que representa o nome da imagem, transformado em md5?

Quando você cria um input do tipo file no seu html, o nome desse campo é enviado para o PHP e o conteúdo dele é o nome da imagem que a pessoa enviou.

No código que você postou não incluiu a parte que recebe de fato o arquivo, nem a parte que define a variável $imagem_name. Por isso eu apenas peguei a parte que copia sua imagem de um lugar e manda para outro, renomeei o arquivo de destino mantendo a pasta e pronto. O nome que foi gerado pelo hash é exatamente o md5 do contaúdo de $imagem_name

porem, o nome que ta cadastrando no banco de dados, é o nome original e não o codificado

como resolver?

Bom, você tem a opção de, quando resgatar a imagem do banco de dados você usar o md5 no nome real dela, isso irá fazer com que você saiba qual é a imagem.

No seu banco está assim:

mysql> select logomarca from c_clicalista where `clica_id`=44;
+---------------+
| logomarca     |
+---------------+
| logomarca.jpg |
+---------------+
1 row in set (0.00 sec)
Ai você recupera assim no PHP:
if ( ( $resp = mysql_query( "select logomarca from c_clicalista where `clica_id`=44" , $conn ) ) ){
    if ( ( $row = mysql_fetch_array( $resp , MYSQL_ASSOC ) ) ){
        $arquivo = sprintf( "%s" , preg_replace_callback( "/(\\w+)\\.(\\w{3})/" , create_function( '$mtc',
            'return( sprintf( "%s.%s" , md5( $mtc[ 1 ] ) , $mtc[ 2 ] ) );'
        ) , $row[ "logomarca" ]  ) );
        
        printf( "O arquivo que está no banco é: %s e depois do md5 ficou %s\n" , $row[ "logomarca" ] , $arquivo );        
    }
    
    mysql_free_result( $resp );
}

Isso vai exibir:

O arquivo que está no banco é: logomarca.jpg e depois do md5 ficou c3735b888c69db8a2b34bd772e4b5bb0.jpg

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...