Não é possível fazer o upload de um arquivo de 5mb usando o uploader de arquivo AJAX

1

Estou usando o plug-in de upload de arquivos (de: link ) para fazer o upload de arquivos para o meu site.

Se você estiver usando um navegador da Web moden (como o Firefox 6 ou o Chrome 13), ele faz upload por streaming do arquivo no corpo do POST e pode fornecer uma barra de progresso. Se você estiver usando o IE (ou um navegador antigo), ele voltará ao padrão $ _FILES (usando um iFrame oculto).

Tudo estava funcionando bem, mas de repente não consigo fazer upload de arquivos de 5 MB no Chrome ou no Firefox. Quando eu carrego um arquivo de 5MB no Chome ou no Firefox, recebo um erro 500 e meu código PHP nunca é executado. Se eu usar o Internet Explorer (que usa $ _FILES), funciona bem.

Isso tem que ser um problema de configuração, já que meu código PHP nunca roda. Então, verifiquei minhas configurações.

/etc/php.ini

upload_max_filesize = 15M
post_max_size = 16M

Eu procurei por LimitRequestBody , mas não foi encontrado em lugar algum (e o padrão é ilimitado).

As configurações parecem corretas. Depurei isso por um tempo e não consigo descobrir o que está errado.

Existe uma configuração que está faltando? O servidor tem suhosin instalado, se isso importa.

Eu sei que meu código PHP funciona, pois arquivos com menos de 4MB são enviados corretamente (em todos os navegadores). Eu só tenho um problema com arquivos maiores que 5MB (usando o Chrome / Firefox). O estranho é que isso funciona bem no meu servidor de teste, mas não no meu servidor de produção. Eles provavelmente têm configurações diferentes (suhosin está em produção, mas não em teste).

    
por Rocket Hazmat 21.09.2011 / 17:30

1 resposta

3

Acho que o problema é aqui e especificamente na stream_copy_to_stream () o que parece ser um hog de memória porque (e eu apenas presumo) ele copia o arquivo inteiro (?) para ser carregado na memória. Então verifique suhosin.memory_limit e memory_limit no php.ini

PS Eu não sei a etiqueta aqui se eu deveria enviá-lo como uma resposta ou um comentário, mas eu vou deixe como uma resposta para o tempo.

    
por 21.09.2011 / 18:08