Classe para manipulação de uploads
<p>Segue-se abaixo o código para PHP 5 como prometi. Não modifica muita coisa, somente o encapsulamento e a classe UploadArgs declarei como final, pois não precisa mais ser herdada. Outra coisa, apesar de você estar usando o PHP 5, o outro código também é para funcionar.
</p>
<div style="background-color : #e0e0e0; width : 560px; padding : 4px;">
</div><br />
</p>
<div style="background-color : #e0e0e0; width : 560px; padding : 4px;">
<?<span style="color : #ff0000">php</span><br /><br /> <span style="color : #009900">/********************/ </span><br /> <span style="color : #009900">/* Classe Upload */ </span><br /> <span style="color : #009900">/* arabasso */ </span><br /> <span style="color : #009900">/* 2007 */ </span><br /> <span style="color : #009900">/********************/ </span><br /><br /> <span style="color : #009900">// Classe Para Manipulação de Uploads - upload.class.php </span><br /><br /> class Upload<br /> {<br /> private<br /> $data;<br /><br /> public<br /> $count;<br /><br /> <span style="color : #009900">// Construtor da classe Upload</span><br /><br /> <!-- Função Construtora --> public function __construct($index)<br /> {<br /> <span style="color : #009900">// Se o índice não for uma string</span><br /><br /> if (!is_string($index))<br /> die("<b>Erro:</b> STRING esperada!");<br /><br /> <span style="color : #009900">// Se o array com este índice não existe</span><br /><br /> if (!isset($_FILES[$index]))<br /> die("<b>Erro:</b> ÍNDICE indefinido!");<br /><br /> <span style="color : #009900">// Referência para a variável</span><br /><br /> $this->data = & $_FILES[$index];<br /><br /> <span style="color : #009900">// Número de elementos</span><br /><br /> $this->count = count($this->data["name"]);<br /> }<br /><br /> <!-- Função Argumento 1 --> <span style="color : #009900">// Pega um elemento baseado no índice</span><br /><br /> public function arg($index)<br /> {<br /> <span style="color : #009900">// Se o índice for menor que 0 ou maior que o total</span><br /><br /> if ($index < 0 || $index > $this->count)<br /> die("<b>Erro:</b> ÍNDICE inválido!");<br /><br /> <span style="color : #009900">// Retornando uma instância do objeto UploadArgs</span><br /><br /> return new UploadArgs($this->data, $index);<br /> }<br /><br /> <!-- Função Argumentos Array --> <span style="color : #009900">// Retorna um array de objetos</span><br /><br /> public function args()<br /> {<br /> $arr = array();<br /><br /> <span style="color : #009900">// Adicionando instâncias ao array</span><br /> <span style="color : #009900">// array_push adiciona um elemento no final do array</span><br /><br /> for ($i = 0; $i < $this->count; $i++)<br /> array_push($arr, new UploadArgs($this->data, $i));<br /><br /> return $arr;<br /> }<br /> }<br /><br /> <span style="color : #009900">// Classe para Informações do Arquivo Enviado </span><br /><br /> final class UploadArgs<br /> {<br /> public<br /> $name, $size, $type, $tmpName, $error;<br /><br /> <span style="color : #009900">// Construtor da classe UploadArgs</span><br /><br /> <!-- Função Construtora --> public function __construct(& $data, $index)<br /> {<br /> $this->name = $data["name"][$index];<br /> $this->size = $data["size"][$index];<br /> $this->type = $data["type"][$index];<br /> $this->tmpName = $data["tmp_name"][$index];<br /> $this->error = $data["error"][$index]; <br /> }<br /><br /> <!-- Função Move o arquivo enviado --> <span style="color : #009900">// Move o arquivo para a pasta destino</span><br /><br /> public function move($destiny)<br /> {<br /> <span style="color : #009900">// Identificando o destino</span><br /><br /> $destiny .= $this->name;<br /><br /> <span style="color : #009900">// Movendo o arquivo</span><br /><br /> move_uploaded_file($this->tmpName, $destiny);<br /> }<br /><br /> }<br /> ?>
Novo Comentário: