como calcular os limites exatos de upload do php

1

o tamanho máximo de uploads no php depende do número de configurações. aqui estão, como colocado no arquivo de hosts virtuais do apache:

php_admin_flag file_uploads on

php_admin_value memory_limit 560M
php_admin_value post_max_size 530M
php_admin_value upload_max_filesize 500M

php_admin_value max_execution_time 0
php_admin_value max_input_time 0

ignore os valores acima, mas eles permitem que eu permita envios de cerca de 150-200M. memory_limit, post_max_size e upload_max_filesize têm algumas relações específicas entre si. eu acredito que

upload_max_filesize < post_max_size < memory_limit

no entanto, eu não sei como calcular os tamanhos exatos. por exemplo, quais devem ser os valores dessas configurações para permitir o upload de exatamente 100 milhões de arquivos? Pelo que eu coloquei on-line, há vários fatores que determinam essas proporções, mas não consegui encontrar nenhuma referência sobre quais são esses fatores.

estou usando o sistema linux.

    
por Nova deViator 27.03.2011 / 19:25

1 resposta

1

O limite de memória é independente do tamanho do POST do qual você faz upload de arquivos. Os arquivos enviados serão analisados diretamente pelo PHP e colocados em uma pasta temporária.

O upload_max_filesize deve ser 100M e seu post_max_size deve ser 100M + a sobrecarga da codificação multiparte. A sobrecarga é baixa, pois é um código binário com um limite. Mesmo com 101MB, funcionará.

Agora, ele ainda pode travar seu script se você fizer $file = file_get_contents('path/to/uploaded/file.ext'); , porque nesse caso o memory_limit será ativado.

    
por 27.03.2011 / 20:38