Como enviar ficheiros grandes acima de 500MB em PHP [duplicado]

esta pergunta já tem uma resposta aqui:

eu fiz uma página de upload em PHP, mas eu não sei por que a página não iria enviar documentos maiores que 500MB, esta é a minha primeira vez de tentar fazer upload de algo tão grande, eu mudei todas as configurações no PHP.INI (post_max_size = 700M, upload_max_filesize = 600M, and max_execution_time = 300). Os códigos para envio são os abaixo

if(isset($_FILES['upload']) && !empty($_FILES['upload']['name'])){
 move_uploaded_file($_FILES['upload']['tmp_name'], $this->filePath.$this->fileName);
}
Preciso de Ajuda, pergunto-me se há alguma coisa que não está a correr bem..

 20
php
Author: James Okpe George, 2013-04-19

3 answers

Você acha que se aumentar o limite de tamanho do upload vai resolver o problema? e se o uploading 2GB file, O que está acontecendo então? Você leva em consideração o uso da memória de tal script?

Em vez disso, o que você precisa é de um upload carregado, veja aqui : a lidar com as cargas acumuladas do plupload no lado do servidor e aqui: file uploads; como utilizar "chunking"?

 18
Author: Twisted1919, 2017-05-23 11:33:13

Pela configuração, o PHP só permite enviar ficheiros até um determinado tamanho. Há muitos artigos em torno da web que explicam como modificar este limite. Abaixo estão alguns deles:

Por exemplo, pode editar o seu ficheiro php.ini e definir:

memory_limit = 32M
upload_max_filesize = 24M
post_max_size = 32M

Depois terá de reiniciar apache.

Nota: Dito isto, carregar ficheiros grandes como este não é muito fiável. Podem ocorrer erros. Você pode querer dividir os arquivos, e incluir alguns dados adicionais para correções de erro. Uma maneira de fazer isso é usar para arquivos de recuperação . Você pode então verificar os arquivos após o upload usando o par utilitário de linha de comandos em sistemas semelhantes ao unix.

 9
Author: Jean, 2013-04-19 10:58:33
Presumo que queira dizer que está a transferir os ficheiros através de HTTP. Embora não tão ruim quanto FTP, não é uma boa idéia se você pode encontrar outro de resolver o problema. HTTP (e, portanto, os programas componentes) são otimizados em torno da transferência de arquivos relativamente pequenos em torno da internet.

Enquanto o protocolo suporta os pedidos do servidor para o intervalo do cliente, não permite a operação reversa. Mesmo se o software em ambos os extremos não foram afetados pelo volume, mais dados você é a atravessar quanto maior o intervalo durante o qual você pode perder a conexão. Mas o maior problema é essa advertência na última frase.

 0
Author: Suresh Kumar Amrani, 2013-04-19 10:54:36