Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Classe de upload com mensagens de erro e sucesso
upload.php
PHP
<?php
require_once "class_upload.php";
$upload = new Upload();
$upload->Envia_Arquivo();
?>
<html>
<head>
<title>Upload</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data" name="form1">
<input type="file" name="arquivo">
<input type="submit" name="Submit" value="Enviar">
</form>
</body>
</html>
class_upload.php
PHP
<?php
class Upload
{
var $arquivo = "";
var $erro = [array](http://br.php.net/array) ( "0" => "upload execultado com sucesso!",
"1" => "O arquivo é maior que o permitido pelo Servidor",
"2" => "O arquivo é maior que o permitido pelo formulario",
"3" => "O upload do arquivo foi feito parcialmente",
"4" => "Não foi feito o upload do arquivo"
);
function Verifica_Arquivo()
{
$this->arquivo = [isset](http://br.php.net/isset)($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;
return [is_uploaded_file](http://br.php.net/is_uploaded_file)($this->arquivo['tmp_name']) ? true : false;
}
function Envia_Arquivo()
{
if($this->Verifica_Arquivo() == true)
{
[set_time_limit](http://br.php.net/set_time_limit)(0);
$diretorio = "pasta/";
if(($diretorio))
{
[mkdir](http://br.php.net/mkdir)($diretorio);
}
while ( [file_exists](http://br.php.net/file_exists) ( $diretorio.$this->arquivo['name'] ))
{
$this->arquivo['name'] = [preg_replace](http://br.php.net/preg_replace) ( "/^(.+?)(_?)(d*)(.[^.]+)?$/e", "'$1_'.($3+1).'$4'", $this->arquivo['name']);
}
[move_uploaded_file](http://br.php.net/move_uploaded_file)($this->arquivo['tmp_name'], $diretorio . $this->arquivo['name']);
[echo](http://br.php.net/echo) "<span style="color: white; border: solid 1px; background: blue;">".$this->erro[$this->arquivo['error']]."</span>";
}
elseif( [isset](http://br.php.net/isset)($this->arquivo['tmp_name']) )
{
[echo](http://br.php.net/echo) "<span style="color: white; border: solid 1px ; background: red;">".$this->erro[$this->arquivo['error']]."</span>";
}
}
}
?>como eu defino um diretorio no formulario e nao na classe e como eu faco pra verificar os tipos de arquivos
Essa classe é otima, eu estou usando nos meus sites, facilitou bastante meu trabalho ;)