Jump to content
Rafael Freitas

Renomear imagem no upload

Recommended Posts

Boa tarde galera,

Eu tenho o seguinte código para fazer upload de imagem para uma determinada pasta no servidor.

$nome_temporario=$_FILES["arquivo"]["tmp_name"];
$nome_real=$_FILES["arquivo"]["name"];
copy($nome_temporario,"arq_mf_eletronico/$nome_real");

Ele está funcionando normalmente, faz o upload e guarda o caminho da imagem no banco de dados ou seja arq_mf_eletronico/nome da imagem, porém eu precisava que ele também mudasse o nome da imagem, para que não se repita o nome do arquivo na pasta do servidor.

A pergunta  é: como eu faria isso?

 

Ainda não tenho muito conhecimento.

Conto com a ajuda de vocês.

 

Abraço.

Share this post


Link to post
Share on other sites
$ext = strtolower(substr($imagens['name'][$i], -4)); // pega a extensão
$foto = md5(uniqid($imagens['name'])).$ext; // renomeia com a extensão
$dir = "fotos/"; // indica o diretório
move_uploaded_file($imagens['tmp_name'], $dir.$foto); // move o arquivo renomeado para o diretório

Renomeia com um código MD5 único.

Share this post


Link to post
Share on other sites

Boa tarde Marcos,

Certo, no caso, qual seria a variavel que eu usaria pra gravar no banco? Que seria o caminho.

No momento tá assim:

"INSERT INTO mfe (arquivo) VALUES ('arq_mf_eletronico/$arquivo')";

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By mateus.andriollo
      Olá,
      Gostaria de saber se alguem pode me ajudar.
      Meu PHP esta na pasta public_html em um CPanel, quero saber se é possível armazenar em pasta fora da pasta  pública, por segurança mesmo...
      Faço isso em ASP, ai chamo a imagem por um fso, funciona mas queria saber se tem como no PHP.
    • By DeniseAlencar
      Boar tarde pessoal estou fazendo um teste com upload de imagens gravando no banco de dados porem quando cadastro uma imagem com o nome "foto.jpg" e depois cadastro a mesma imagem com o mesmo nome, no banco de dados aparece dois registros com nomes iguais mas gostaria que os nomes fossem diferentes.
       
      E na pasta arquivos aparece uma unica imagem gostaria que quando cadastrasse fotos iguais o nome mudasse tipo foto.jpg , foto2.jpg  etc (isso automaticamente) vou postar o codigo .
      <?php $diretorio = "arquivos/"; if(!is_dir($diretorio)){ echo "Pasta $diretorio não existe";}else{ $arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE; for ($controle = 0; $controle < count($arquivo['name']); $controle++){ $destino = $diretorio."/".$arquivo['name'][$controle]; $nome_foto = $arquivo['name'][$controle]; if(move_uploaded_file($arquivo['tmp_name'][$controle], $destino)){ $sql="INSERT INTO galeria (arquivo) VALUES ('$nome_foto')"; $qry = mysqli_query($conexao,$sql); echo "<head><meta HTTP-EQUIV='refresh' CONTENT='0;URL=index.php'></head>"; }else{ echo "Erro ao realizar upload"; } } } ?>  
    • By Sapinn
      Estou precisando salvar fotos dos usuários de um sistema e não estou conseguindo fazer com OO já assisti video aulas e li algumas matérias mas sempre dá erro. Alguém sabe algum jeito de se fazer?? Eu até tentei mas fica sempre com erro, vou postar aqui talvez tenha algo que eu esteja fazendo errado.
       
      class para salvar a foto:
         private function salvarFoto($foto){         $fotos = $_FILES['foto_admin'];         $fotoDir = "imagens/fotos_admins/";         $fotoPath = $fotoDir . basename($foto['foto_admin']['name']);         $fotoTmp = $foto['foto_admin']['tmp_name'];         if(move_uploaded_file($fotoTmp, $fotoPath)):             return $fotoPath;         else:             return false;         endif;     } E estou chamando ela assim:
       $upload = $this->salvarFoto($_FILES);                 if(gettype($upload) == 'string'):                     $dados['foto_admin'] = $upload;                 endif;  
      E o erro é o seguinte: move_uploaded_file(imagens/fotos_admins/sapinn.jpg): failed to open stream: No such file or directory in
       
      Não sei o que está errado a pasta imagens/fotos_admins está dentro da minha pasta Controller
    • By LucasLV
      Olá.
      Tenho um site onde as imagens são geradas através de um arquivo PHP - utilizo esse método para retornar imagens webp ou jpg - e vi que o navegador não utiliza, ou não salva em cache, as imagens geradas dessa forma.
      Já as onde informo o caminho completo da imagem com a extensão, aparecem como utilizadas do cache.

      Esse comportamento é normal quando as imagens são geradas desse jeito ou é por não ter feito nenhuma configuração de cache no arquivo PHP que gera as imagens?
       
      Coloquei uma imagem do resultado exibido no navegador.

    • By MarcioVmRJ
      Olá.
      Gostaria de saber como fazer um upload utilizando autenticação no ftp com o Dundas.
      Alguém sabe se é possível?
      Já tentei várias formas para autenticar no ftp e não está funcionando.
      Tentei esse aqui também, que não utiliza o dundas: https://benmeg.com/code/asp/ftp.asp.html mas não funcionou.
       
      Meu código está assim:
      Set DundasUpload = server.CreateObject("Dundas.Upload.2")
      DundasUpload.ImpersonateUser "login", "senha", "dominio", 3
      DundasUpload.UseUniqueNames = false
       
      DundasUpload.Save caminhoteste
      DundasUpload.ImpersonationTerminate()
      Set DundasUpload = Nothing
       
      tentei assim também: DundasUpload.ImpersonateUser "login", "senha", "ftp://dominio.com.br/fotos", 3
      mas retorna "Can't open file for writing. -2147467259"
      Mas o diretório está com permissão de escrita.
       
      Obrigado.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.