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 ^^
Pergunta
Vithor
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:
É 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:Juro que eu não tinha visto isso! Nossa... ¬¬ Valeu ^^
Editado por VithorLink para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.