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: