Jump to content


Photo

Classe: Upload De Imagens


  • Faça o login para participar
2 replies to this topic

#1 Fábio Luciano

Fábio Luciano

    Ativo

  • Usuários
  • 309 posts
  • Sexo:Masculino
  • Localidade:Santa Maria / DF
  • Interesses:Ah eu gosto de tudo :D

Posted 31/01/2006, 00:22

<?
class UpLoadAndChangeTheName {
	var $Archive;
	var $Diretorio = 'imgs/';//Defina o diretório das imagens
	var $Erro = array();
	var $NomeGerado;
	
	function FormFile(){
  echo 
  '<form method="post" action="'.$PHP_SELF.'" enctype="multipart/form-data"><br>
 	 <table width="60%" border="0" align="center">
    <tr align="center">
   	 <td><strong>Arquivo - </strong></td>
   	 <td><input type="file" name="foto" size="40" id="but"/></td>
   	 <td><input type="submit" name="submit" value="Enviar!"  id="but"/></td>
    </tr>
 	 </table>
  </form>
 	 ';
	}
	function CheckAction(){
  if (empty($_POST['submit'])) {
 	 $this->FormFile();
  }else{
 	 $this->Archive = $_FILES['foto'];
 	 $this->UpLoadFile();
  }
	}
	function UpLoadFile(){
  $NomeDoArquivo = $this->Archive['name'];
  $ArquivoTemporario = $this->Archive['tmp_name'];
  $Tipo = $this->Archive['type'];
  if(ereg("(image)", $Tipo)){
 	 move_uploaded_file($ArquivoTemporario, $this->Diretorio.$NomeDoArquivo);
 	 $this->RenameFile();
  }else{
 	 $this->Erro['AI'] .= 'Arquivo inválido!';
 	 $this->Erro['AI'] .= '<strong> ['.$this->Archive['type'].']</strong><br />';
 	 $this->Erro['AI'] .= 'Este sistema aceita apenas arquivos com MIME contendo \'image\'';
  }
	}
	function RenameFile(){
  $NovoNome = md5(mktime());
  $NomeDoArquivo = $this->Archive['name'];
  $Separa = explode('.', $NomeDoArquivo);
  $NewName = $NovoNome.'.'.$Separa[1];
  $FileSize = round($this->Archive['size']/1024, 1);
  $Renomeia = rename($this->Diretorio.$NomeDoArquivo, $this->Diretorio.$NewName);
  if($Renomeia){
 	 echo '<div align="left">O Arquivo <strong>'.$NomeDoArquivo.'</strong> foi enviado e renomeado para <strong><a href="'.$this->Diretorio.$NewName.'">'.$NewName.'</a></strong><br/><br/>
 	 <em>Informações do Arquivo...</em><br />
 	 <strong>Tamanho:</strong> '.$FileSize.' Kb.
 	 </div>';
  }else{
 	 $this->Erro[] = 'Erro ao renomear Arquivo!';
  }
	}
	function ShowErrors(){
  foreach($this->Erro as $Erro){
 	 echo '<strong>Houve um erro:</strong> '.$Erro;
  }
	}
}
$CallClass = new UpLoadAndChangeTheName;
$CallClass->CheckAction();
$CallClass->ShowErrors();
?>

Como usar?

Coloque ese arquivo em index.php e crie uma pasta chamada imgs


Além do famoso UpLoad ele faz mais alguma coisa?

Sim, ele verifica se é mesmo imagem  por MIME, e renomeia a imagem mandada para um hash md5 para não correr o risco de erros e subscrição de imagens no servidor!



#2 nelson

nelson

    www.opsbrasil.com.br

  • Usuários
  • 403 posts
  • Sexo:Masculino

Posted 02/09/2006, 16:09

erro!!!!

Warning: move_uploaded_file(imgs/estado.gif): failed to open stream: Permission denied in /home/maloka/public_html/maloka/upload/index.php on line 34

Warning: move_uploaded_file(): Unable to move '/tmp/phprVVahN' to 'imgs/estado.gif' in /home/maloka/public_html/maloka/upload/index.php on line 34

Warning: rename(imgs/estado.gif,imgs/fbbc9eb5d1585e065821d6c36e06e64b.gif): No such file or directory in /home/maloka/public_html/maloka/upload/index.php on line 48
Houve um erro: Erro ao renomear Arquivo!


o q faço!! :assobio:

#3 Bruno Augusto

Bruno Augusto

    ∙•● Restarting... ●•∙

  • Usuários
  • 1968 posts
  • Sexo:Não informado
  • Localidade:Itajubá

Posted 03/09/2006, 08:15

Desculpa amigo, mas é só ler.

Acho que o OmegamoN esqueceu de mencionar, apesar de muitos estarem mais carecas do que pneu de carro usado de saber, que para operações de upload deve se dar CHMOD na pasta de destino.

Para não se ter problemas em caso de dúvida dê 777.

Mas se quiser um pouco de segurança e dar CHMOD na medida leia isso

[]'s

Edição feita por: Jackpot, 03/09/2006, 08:15.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq