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

Upload Arquivos/Imagens nome "randômico"


Vithor

Pergunta

Oi pessoal!

Bom, tem um sistema aí que não fui eu quem desenvolveu e tem uma parte que ele faz uploads de imagens ou aplicativos (*.jpg ou *.exe). Mas o cliente está reclamando que, após o upload, o arquivo fica com um nome "estranho". Alguns exemplos:

0ac1506e27defd70db1acce25fd8153b.jpg

1c2751f1a1905242374fd4f2705a8db3.jpg

ac979dabe4001bc66c9332d63b0aa7ad.exe

87510af49fcfab2b896c08bfa155f609.exe

Acho que deu pra entender né?! Bom, o cliente hoje resolveu que ele não quer mais esses nomes no arquivo. Ele quer que o aplicativo/imagem fique com o nome original. Eu dei uma olhada no código, mas é um sistema relativamente complexo e grande, então tá meio difícil achar a parte exata. Eu venho aqui perguntar pra vocês se é possível o servidor renomear o arquivo sozinho, ou então, por exemplo, eu acho que os servidores copiam a imagem pra um "nome" temporário. Eu quero saber se é problema do servidor, porque daí eu não preciso contatar o desenvolvedor original. Mas se não for, vou ter que repassar o serviço pra ele mesmo.

Vou postar a parte do código que eu acho que faz a parte de upload:

<?php

require_once('../class/util/Upload.class.php');

       function handleUpload($uploadDirectory, $replaceOldFile = FALSE){
        if (!is_writable($uploadDirectory)){
            return array('error' => "Server error. Upload directory isn't writable.");
        }
        
        if (!$this->file){
            return array('error' => 'No files were uploaded.');
        }
        
        $size = $this->file->getSize();
        
        if ($size == 0) {
            return array('error' => 'File is empty.');
        }
        
        if ($size > $this->sizeLimit) {
            return array('error' => 'File is too large.');
        }
        
        $pathinfo = pathinfo($this->file->getName());
        //$filename = $pathinfo['filename'];
        $filename = md5(uniqid());
        $ext = $pathinfo['extension'];

        if($this->allowedExtensions && !in_array(strtolower($ext), $this->allowedExtensions)){
            $these = implode(', ', $this->allowedExtensions);
            return array('error' => 'File has an invalid extension, it should be one of '. $these . '.');
        }
        
        if(!$replaceOldFile){
            /// don't overwrite previous files that were uploaded
            while (file_exists($uploadDirectory . $filename . '.' . $ext)) {
                $filename .= rand(10, 99);
            }
        }
        
        $erro = $this->file->save($uploadDirectory . $filename . '.' . $ext);
        if ($erro == ""){
            return array('success'=>$filename . '.' . $ext);
        } else {
            return array('error'=> $erro);
        }
        
    }    
}

$uploader = new qqFileUploader($allowedExtensions, $sizeLimit);
É um arquivo com vários métodos, mas eu postei todos, "just in case". Se alguém puder me ajudar, eu agradeço! Abraços!!! EDIT nossa pessoal, eu tava CEGO! Literalmente! Fiquei analisando o código por horas, e só vi a hora que postei no fórum ¬¬ o "erro" que tá dando é por causa dessas linhas:
$filename = md5(uniqid());

//...

if(!$replaceOldFile){
    /// don't overwrite previous files that were uploaded
    while (file_exists($uploadDirectory . $filename . '.' . $ext)){
        $filename .= rand(10, 99);
    }
}

Juro que eu não tinha visto isso! Nossa... ¬¬ Valeu ^^

Editado por Vithor
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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