Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cassio Talle

Erro com o tamanho maximo de upload

Recommended Posts

Olá estou com o seguinte problema:

Tenho um script de upload, porém quando eu realizo um upload de arquivo maior do que o valor definido na diretiva upload_max_filesize do php.ini, ele retorna pra mim o seguinte erro..

 

Warning: POST Content-Length of 17281733 bytes exceeds the limit of 8388608 bytes in Unknown on line 0

Gostaria de saber se existe alguma forma de tratar esse erro sem ter que mexer no php.ini, mesmo que se o valor upload_max_filesize for aumentato mas se o usuário tentar carregar uma arquivo de tamanho superior aparecerá o mesmo erro.

 

obs. mesmo com o <input type="hidden" name="MAX_FILE_SIZE" id="MAX_FILE_SIZE" value="XXXX" /> definido se o tamnho do arquivo for maior do que o do MAX_FILE_SIZE o erro citado acima aparece.

 

desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo vai depender das configurações do servidor em que o seu sistema está hospedado.

 

Se a sua hospedagem usar o cPanel por exemplo, você poderá criar um arquivo php.ini na raíz da sua hospedagem e setar somente esta diretiva que deseja.

 

Se não, geralmente você poderá setá-la usando um arquivo .htaccess se usar Apache.

 

Caso tenha interesse eu tenho um servidor dedicado com cPanel onde você pode setar as suas próprias configurações do PHP, me manda uma MP se desejar.

 

Um abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu entendo que se alterar a diretiva do php.ini eu posso aumentar o tamanho do arquivo que pode fazer o uoload, mas se eu aumentar esse valor para 10M e o usuário tentar fazer um upload de 11M o sistema reatornará aquela mensagem que eu já citei, eu gostaria na verdade de saber como eu posso tratar esse erro de forma que eu possa retornar para o meu usuário umsa mensagem de alerta migável ao ivés da mensagem de waring.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Cassio Talle,

 

A primeira coisa a se fazer é desativar as mensagens de erro:

 

error_reporting( 0 );

 

Feito isso, você verificará o conteúdo da super global http://forum.imasters.com.br/public/style_emoticons/default/seta.gif $_FILES:

 

if ( isset( $_FILES[ 'arquivo' ] ) ){
$arquivo =& $_FILES[ 'arquivo' ];

if ( $arquivo[ 'error' ] !== 0 ){
	echo 'Lamentamos, mas não foi possível completar o upload de seu arquivo.';
} else {
	//...
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

 

error_reporting(0);

 

$limite="10240000";// ou 10.000kb x 1024b = 10240000k =10 mega

$arquivo = $_FILES["arquivo"];

$arquivo_size = $arquivo["size"];

 

//verifica tamanho do arquivo

if($arquivo_size > $limite){

echo"<script>alert('Erro Tamanho do arquivo muito grande tamanho maximo permitido é [10 mega]');</script>";

echo"<script>history.back();</script>";

exit();

}

 

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Continua aparecendo o mesmo erro.

 

vou postar o código aqui!

 

O erro se dá qunado um o tamanho do aquivo ultrapassa MAX_FILE_SIZE do php.ini

 

<?php
ini_set( 'display_errors', 0 );
//error_reporting( 0 );
if( isset( $_POST['enviar'] ) ) {
    $pathToSave = '/tmp/';
    $i = 0;
    $msg = array( );
    $arquivos = array( array( ) );
    foreach(  $_FILES as $key=>$info ) {
        foreach( $info as $key=>$dados ) {
            for( $i = 0; $i < sizeof( $dados ); $i++ ) {
                $arquivos[$i][$key] = $info[$key][$i];
            }
        }
    }

    $i = 1;
    foreach( $arquivos as $file ) {

        // Verificar se o campo do arquivo foi preenchido
        if( $file['name'] != '' ) {
            $arquivoTmp = $file['tmp_name'];
            $arquivo = $pathToSave.$file['name'];

            if( !move_uploaded_file( $arquivoTmp, $arquivo ) ) {
                $msg[$i] = 'Erro no upload do arquivo '.$i;
            } else {
                $msg[$i] = sprintf('Upload do arquivo %s foi um sucesso!',$i);
            }
        } else {
            $msg[$i] = sprintf('O arquivo %d nao foi preenchido',$i);
        }

        $i++;
    }
    foreach( $msg as $e ) {
        printf('%s<br>', $e);
    }

}

?>
<form method='POST' enctype='multipart/form-data'>
    Arquivo1: <input type='file' name='arquivo[]'><br>
    Arquivo2: <input type='file' name='arquivo[]'><br>
    <br>
    <input type='submit' value='Enviar' name='enviar'>
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu também estou com problema para fazer upload de imagens grande! Só que o meu não dá erro algum. Não sei o que estava havendo. Já alterei a upload_max_filesize = 35M, minha imagem tem até 25M e não da certo! Não dá erro algum... é como se o código que trata o arquivo deixasse e existir na execução! Tentei habilitar o error_reporting() e nada! A error_reporting = E_ALL & ~E_NOTICE está assim!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Habilite todas as exibições de erro, como mostrado neste tópico, na Orientação No. 3

 

Você também deve alterar post_max_size. Siga as orientações deste artigo: http://blog.ultimatephp.com.br/upload-arquivo-php/

 

Se o problema persistir, abra um novo tópico com sua dúvida.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.