Como enviar ficheiros grandes acima de 500MB em PHP [duplicado]
esta pergunta já tem uma resposta aqui:
- enviar ficheiros grandes com o php, apache 5 respostas
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..
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"?
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:
- PHP aumentar o limite de tamanho do ficheiro de envio
- Como faço para aumentar os limites de upload do PHP?
- a enviar ficheiros grandes (grandes) em PHP usando .htaccess
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.
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.