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

(Resolvido) Renomear a foto no upload...


Jobless

Pergunta

Galera, preciso da ajuda de vocês.

Estou usando este script para fazer upload de minhas fotos.

Tentei de toda maneira aqui modificá-lo para que ao fazer o upload de uma determinada imagem ele a renomeie com um nome de 32 caracteres usando o algorítimo md5.

Tipo ao fazer o upload da imagem

"casa.jpg"

ele salve com um nome gerado pelo algorítimo md5 tipo:

"1f3870be274f6c49b3e31a0c6728957f.jpg"

Se alguém puder me ajudar, pois pelo que tentei com meu pouco conhecimento em php eu não consegui.

Segue o script que estou utilizando:

<?php

//Diretório aonde ficará os arquivos
$dir = "./";

//Extensões permitidas
$ext = array("gif","jpg","png");

//Quant. de campos do tipo FILE
$campos = 6;

//Formulário
echo '<form method="post" action="'.$PHP_SELF.'" enctype="multipart/form-data">
Arquivo: <input type="file" name="file[]">

Arquivo: <input type="file" name="file[]">

Arquivo: <input type="file" name="file[]">

Arquivo: <input type="file" name="file[]">

Arquivo: <input type="file" name="file[]">

Arquivo: <input type="file" name="file[]">

<input type="submit" name="submit" value=" OK ">
</form>';


//Se for enviado
if (isset($_POST['submit'])) {

//Obtendo info. dos arquivos
$f_name = $_FILES['file']['name'];
$f_tmp = $_FILES['file']['tmp_name'];
$f_type = $_FILES['file']['type'];


//Contar arquivos enviados
$cont=0;

//Repetindo de acordo com a quantidade de campos FILE
for($i=0;$i<$campos;$i++){

//Pegando o nome
$name = $f_name[$i];

//Verificando se o campo contem arquivo
if ( ($name!="") and (is_file($f_tmp[$i])) and (in_array(substr($name, -3),$ext)) ) {

if ($cont==0) {
echo "<b>Arquivo(s) enviados:
</b>";
}
echo $name." - ";

//Movendo arquivo's do upload
$up = move_uploaded_file($f_tmp[$i], $dir.$name);

//Status
if ($up==true):
echo "<i>Enviado!</i>";
$cont++;
else:
echo "<i>Falhou!</i>";
endif;

echo "
";
}

}

echo ($cont!=0) ? "<i>Total de arquivos enviados: </i>".$cont : "Nenhum arquivo foi enviado!";
}
?>


Caso você deseje exibir as imagens já postadas, adicione o seguinte código:
<?php
// extençoes aceitas
foreach(array_merge(glob("*.gif"), glob("*.jpeg"), glob("*.jpg"), glob("*.png"), glob("*.JPG"), glob("*.PNG"), glob("*.GIF"), glob("*.JPEG")) as $arquivo ){
echo "<img src='".$arquivo."'<span class='style1'>--</span>";
}
?>

valeu :blush:

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

i aew Jobless , tipo tenta assim, adiciona essas linhas:

$name = $f_name[$i];
$nomeMd5 = md5( eregi_replace( '\.(gif|jpg|png)$' , '' , $name ) );
$ext = explode( '.' , $name );
e no move_uploaded_file coloca assim:
$up = move_uploaded_file($f_tmp[$i], $dir . $nomeMd5 . "." . $ext[ count( $ext )  - 1 ] );

espero que você entenda como funciona, abraço!

Link para o comentário
Compartilhar em outros sites

  • 0

Galera valeu!

Deu certo eu só implementei para gera um código aleatório de 32 caracteres

segue ai o código para quem precisar...

<?php

//Diretório aonde ficará os arquivos
$dir = "./ima/";

//Extensões permitidas
$ext = array("GIF","giff","gif","jpg","png","jpeg","bmp","JPG");

//Quant. de campos do tipo FILE
$campos = 6;

//Formulário
echo '<form method="post" action="'.$PHP_SELF.'" enctype="multipart/form-data">
  Arquivo: <input type="file" name="file[]">

  Arquivo: <input type="file" name="file[]">

  Arquivo: <input type="file" name="file[]">

  Arquivo: <input type="file" name="file[]">

  Arquivo: <input type="file" name="file[]">

  Arquivo: <input type="file" name="file[]">

  <input type="submit" name="submit" value=" OK ">
  </form>';


//Se for enviado
if (isset($_POST['submit'])) {

//Obtendo info. dos arquivos

$f_name = $_FILES['file']['name'];
$f_tmp = $_FILES['file']['tmp_name'];
$f_type = $_FILES['file']['type'];


//Contar arquivos enviados
$cont=0;

//Repetindo de acordo com a quantidade de campos FILE
for($i=0;$i<$campos;$i++){

//Pegando o nome
$name = $f_name[$i];
$file_info = pathinfo($name);
$md5_name = substr(md5(microtime()),0,32) .'.'. $file_info['extension'];

$ext = explode( '.' , $name );

//Verificando se o campo contem arquivo
  if ( ($name!="") and (is_file($f_tmp[$i])) and (in_array(substr($name, -3),$ext)) ) {

    if ($cont==0) {
      echo "<b>Arquivo(s) enviados:
</b>";
    }
      echo $name." - ";
      
      
      $ponto= "";
      //Movendo arquivo's do upload
     $up = move_uploaded_file($f_tmp[$i], $dir . $md5_name);

        //Status
        if ($up==true):
            echo  "<i>Enviado!</i>";
              $cont++;
        else:
            echo "<i>Falhou!</i>";
        endif;

      echo "
";
  }

}

echo ($cont!=0) ? "<i>Total de arquivos enviados: </i>".$cont : "Nenhum arquivo foi enviado!";


}
?>
<?
echo $f_type;

?>

Caso você deseje exibir as imagens já postadas, adicione o seguinte código: 
<?php
// extençoes aceitas
foreach(array_merge(glob("*.gif"), glob("*.jpeg"), glob("*.jpg"), glob("*.png"), glob("*.JPG"), glob("*.PNG"), glob("*.GIF"), glob("*.JPEG")) as $arquivo ){
echo "<img src='".$arquivo."'<span class='style1'>--</span>";
}
?>

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...