O limite padrão do servidor, para upload de arquivos via PHP é de 2 MB. Isso significa que ao tentar enviar arquivos maiores que 2 MB, o servidor irá recusar o upload e gerar uma mensagem de erro. Porém, graças ao recurso phpSuExec, você pode sobrescrever este valor, alterando-o para qualquer outro valor de sua preferência, conseguindo desta forma, enviar arquivos maiores que o limite padrão definido.


Instruções

(1) Crie um arquivo chamado php.ini com o seguinte conteúdo:

post_max_size = 10M
upload_max_filesize = 10M

Nota: no exemplo acima, definimos os valores para somente permitir upload de arquivos cujo tamanho não ultrapasse 10 MB. Você deverá substituí-los para os valores de acordo com a sua necessidade.

(2) Verifique se dentro de sua pasta public_html existe um arquivo chamado ".htaccess" (assim mesmo, com um ponto na frente do nome). Se tiver, baixe-o para seu computador. Se não tiver, crie você mesmo um arquivo chamado "htaccess.txt", tendo os mesmos cuidados que teve na criação do "php.ini" (texto puro, feito no Bloco de Notas, etc). Dentro desse arquivo ".htaccess" ou "htaccess.txt" (conforme tenha sido o seu caso), coloque a linha:

suPHP_ConfigPath /home/LOGIN/public_html

Note que "LOGIN", ali, é o login do seu cPanel/FTP.

(3) Coloque os dois arquivos dentro de sua pasta "public_html", enviando-os em modo ASCII através de um programa específico para FTP.

Se você teve que criar um arquivo "htaccess.txt" no passo 2 acima, renomeie esse arquivo, depois que ele estiver em sua conta, para ".htaccess" (assim mesmo, com um ponto na frente do nome).

(4) E está pronto!


Script de Exemplo

Se desejar verificar se as instruções acima deram certo, siga os seguintes passos:

(1) Acesse sua conta por FTP, e crie um diretório (pasta) para receber os arquivos enviados através da web. Como sugestão, nós sugerimos a você que crie um diretório chamado uploads dentro de seu diretório principal public_html.

(2) Crie um arquivo chamado uploadteste.php com o seguinte conteúdo:

 <?php
 if (!empty($_FILES['ourFile']['name'])) {
 $saveDirectory = 'uploads/';
 $tempName = $_FILES['ourFile']['tmp_name'];
 $fileName = $_FILES['ourFile']['name'];
 if (move_uploaded_file($tempName, $saveDirectory . $fileName)) {
 echo 'Feito!';
 } else {
 echo 'Erro!';
 }
 } else {
 ?>
 <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="upload">
Selecione o arquivo:
   
 <input name="ourFile" type="file">
 
 <input name="submit" type="submit" value="Enviar">
 </form>
 <?php
 }
 ?>
 

Nota: no código acima, substitua a ocorrência uploads pelo nome do diretório que você criou para receber os arquivos enviados pelo script. Caso tenha optado por aceitar nossa sugestão e criou um diretório chamado uploads, então você não deverá alterar nada no script.

(3) Coloque o arquivo uploadteste.php (por FTP em modo ASCII) em sua conta.

(4) Acesse o arquivo uploadteste.php pela web:

http://SEU-DOMINIO-AQUI/uploadteste.php

Nota: no endereço acima, substitua a ocorrência seudominio pelo nome de seu próprio domínio.

(5) Usando o formulário do script, envie um arquivo cujo tamanho não ultrapasse os valores definidos dentro de seu arquivo php.ini.

Se o upload tiver sido bem sucedido, o script retornará a seguinte mensagem:

Feito!

Nota: verifique (por FTP) se o arquivo enviado encontra-se dentro do diretório definido para receber os arquivos.