Mudar o tamanho máximo do ficheiro de envio
cada vez que tento enviar um ficheiro, recebo um erro alegando que o ficheiro excede o tamanho máximo permitido, por isso preciso de aumentar o tamanho. A minha pesquisa na web sugeriu a alteração do ficheiro .htaccess
ao qual não tenho acesso, por isso não vai funcionar. Outros sugeriram que eu deveria adicionar um arquivo personalizado php.ini
à minha raiz que não funcionou. Mais alguma sugestão?
14 answers
Tem de definir o valor de upload_max_filesize
e post_max_size
no seu php.ini: [6]
; Maximum allowed size for uploaded files.
upload_max_filesize = 40M
; Must be greater than or equal to upload_max_filesize
post_max_size = 40M
Após modificar o php.ficheiros ini, é necessário reiniciar o seu Servidor HTTP para usar uma nova configuração.
Se não conseguires mudar o teu php.ini, estás sem sorte. Não pode alterar estes valores em tempo de execução; uploads de ficheiros maiores do que o valor indicado no php.ini terá falhado quando a execução chegar a sua chamada para ini_set
.
Pode alterá-lo através de um ficheiro .htaccess
.
.htaccess
os ficheiros são guardados na mesma pasta que os seus ficheiros .php
. Eles modificam a configuração para essa pasta e todas as sub-pastas. Você simplesmente os usa criando um arquivo .htaccess
no diretório de sua escolha (ou modificá-lo se presente).
O seguinte deverá permitir-lhe aumentar o seu limite de envio (se o fornecedor do servidor permitir alterações de configuração do PHP através de .htaccess
).
php_value upload_max_filesize 40M
php_value post_max_size 42M
upload_max_filesize = 40M
post_max_size = 40M
E funcionou muito bem para mim!
Também pode utilizar a função ini_set (apenas para a versão do PHP abaixo de 5, 3):
ini_set('post_max_size', '64M');
ini_set('upload_max_filesize', '64M');
Tal como @acme disse, no php 5.3 e acima desta configuração estão as directivas PHP_INI_PERDIR, por isso não podem ser definidas usando o ini_set. Podes usar o utilizador.em vez disso, ini.
php -i | grep -i "loaded configuration file"
Depois abra o ficheiro e altere
upload_max_filesize = 2M
post_max_size = 2M
Substituir o 2M pelo tamanho que deseja, por exemplo 100M.
Tenho um post no blog sobre isso com um pouco mais de informação também.http://www.seanbehan.com/how-to-increase-or-change-the-file-upload-size-in-the-php-ini-file-for-wordpress.htaccess
Quando se faz mudanças na migração do php através .htaccess
deve-se colocar configrações em
IfModule
Marca, outra que o erro interno do servidor irá surgir.
<IfModule mod_php5.c>
php_value upload_max_filesize 40M
php_value post_max_size 40M
</IfModule>
E este é o referance do php se quiser compreender mais. http://php.net/manual/en/configuration.changes.php
Resolvi este problema criando um ficheiro chamado .user.ini
na pasta onde residem os programas de ficheiros PHP (isto significa que qualquer programa de PHP nesta pasta obtém o novo limite de tamanho de ficheiro)
O conteúdo de .user.ini
foi:
upload_max_filesize = 40M
post_max_size = 40M
memory_limit
na webhosting compartilhada?", "How can I change php value upload_max_filesize
in shared webhosting?", "How can I change php value max_input_vars
in shared webhosting?", "How can I alterar o valor do php max_execution_time
na webhosting partilhada?", "How can I change php value max_input_time
in shared webhosting?"e muito mais, configurando ou mudando php.ini ou .htaccess
file. Tentei mudá-los, mas surgiram problemas. Finalmente eu contactei meu provedor de hospedagem, e acontece que eu defini meu php para nativo, eles mudaram para php 5.6, aqui está sua resposta:
O teu PHP foi configurado para o modo' nativo', o que significa que não podes sobrepor valor. Mudei-te para apenas 5.6, por isso devias ... porta-te bem Vá."
Depois disso, conectei o meu site através de ftp Filezilla, também não se esqueça de fazer tanto o seu serviço ftp para mostrar arquivos escondidos, e o seu computador local para fazê-lo, porque .htaccess
arquivo estava escondido no meu laptop local e no meu site. Ele estava disponível na pasta public_html, Eu apenas baixei e adicionei os seguintes códigos para o final do arquivo e, em seguida, carregou-o de volta para o servidor:
php_value memory_limit 256M
php_value post_max_size 256M
php_value upload_max_filesize 64M
php_value max_input_vars 1800
php_value max_execution_time 300
php_value max_input_time 300
Tudo está funcionando corretamente por enquanto, se algum de vocês superar com alguns problemas, por favor escreva aqui e me avise para que eu possa mudar os códigos acima mostrados. A propósito, eu também upload algumas fotos que mostram a mudança.
Mais uma coisa, quase me esqueci de mencionar a instalação do ZipArchive na sua ... serviço de webhosting compartilhado, eu gerenciei esse requisito de carrapato apenas indo para as configurações de php através do meu cpanel, clique em extensões do seletor de php e, em seguida, tick zip seção, isso é tudo. Obrigado. PS: estou aberto a boas práticas, e se você vir alguma má prática aqui, por favor, avise-me, eu tentarei mudá-las. Obrigado.- funções.php
- php.ini
- .htaccess
- Temos de hospedagem web, depois gerir
- em Software seleccione seleccione a versão do PHP
- Seleccione mude para as opções do PHP encontradas no topo canto direito da tabela com a cor do tipo de letra: azul
- na parte inferior, você provavelmente terá upload_max_filesize = 2M Agora, Sinta-se à vontade para mudá-lo.
- não te esqueças de carregar no botão gravar!
- Vá agora para o painel wp-admin, seleccione Media depois Adicionar
voilà! Agora você tem um tamanho máximo de arquivo de upload diferente:)
Talvez este deve ser um comentário para @seanb123 e @Fredrick Gauss comentando sobre o seu comentário, mas para mim em Drupal 8.1 com PHP 7, o arquivo que eu precisava para modificar foi localizado aqui:
/etc/php/7.0/apache2/php.ini
Modded provavelmente mais quatro php.ficheiros ini, incluindo o que o meu sistema chamou de "ficheiro de configuração carregado" (php -i | grep -i "loaded configuration file"
) e o que foi encontrado na informação.php page, mas nenhum deles ajudou. A chave para descobrir o caminho correto foi encontrada em um site a partir de 2012. Disseram que o caminho estava desacreditado. até naquela altura, mas deu-me uma pista de onde encontrá-la. Para PHP7 é um pouco diferente do PHP5, mas o conceito é o mesmo.
O site que me ajudou: http://www.evilbox.ro/linux/remove-ispconfig-maximum-upload-size-of-2m-for-wordpress/
Isto é ... também endereçado aqui: importar o limite de tamanho do ficheiro em PHPMyAdminEditar: o texto completo da minha nota para mim mesmo:
Para alterar o tamanho máximo de envio, edite upload_ max_filesize e se necessário?] post_max_size in / etc / php / 7.0/apache2 / php.ini (ou in versões mais antigas: / etc / php5 / apache2 / php.ini)
/ etc / init.d / apache2 reiniciar
EDITAR DE NOVO:
uma vez que você está importando arquivos grandes, você pode precisar alterar o tempo-limite para processá-los. No meu case, o ficheiro chamado "config".padrao.php " foi encontrado em /usr/share/phpmyadmin/libraries/config.default.php
com a variável $cfg['ExecTimeLimit'] = 300;
Mudei o meu para 900 por uma enorme importação, por exemplo.
Depois disso, você precisa reiniciar o apache
Não dessas soluções funcionam para mim!! (já definido para 32M por padrão).O problema é na maioria dos casos max_allowed_packet
Estou a trabalhar no local e a usar MAMP
.
Aqui estão as soluções;
1. Se não tiver my.ini
Adicionar
--max_allowed_packet=168435456
Para
...\MAMP\bin\startMysql.sh
2. Se tiveres a minha.ini
Em
[mysqld]
Adicionar
max_allowed_packet=100M
Feito!
Muitas vezes eu notei que o site wit compartilhado hospedagem não permite alterar as configurações em php.ficheiros ini. também não se pode nem mesmo engatar .ficheiro htaaccess. em tal situação pode - se tentar seguir as coisas
ini_set('upload_max_filesize', '10M');
ini_set('post_max_size', '10M');
ini_set('max_input_time', 300);
ini_set('max_execution_time', 300);
upload_max_filesize
, memory_limit
e post_max_size
no php.ficheiro de configuração do ini exactamente.
Todas estas três configurações limitam o tamanho máximo dos dados que podem ser submetidos e tratados pelo PHP.
Tipicamente post_max_size
e memory_limit
têm de ser maiores que upload_max_filesize
.
Então três variáveis total você precisa verificar para ter certeza absoluta.
As respostas estão um pouco incompletas, 3 coisas que tens de fazer
Em php.ini de sua instalação php (Nota: Dependendo se você quiser para CLI, apache, ou nginx, encontre o php certo.ini para manipular. Para nginx é geralmente localizado em /etc/php/7.1/fpm
onde 7.1 depende da sua versão. Para o apache Normalmente /etc/php/7.1/apache2
)
post_max_size=500M
upload_max_filesize=500M
memory_limit=900M
Ou fixar outros valores. Reiniciar / recarregar o apache se tiver o apache instalado ou o php-fpm para o nginx se usar o nginx.