Página 1 de 1

Tamanho máximo permitido para download através da loja

Enviado: 24 Set 2016, 09:54
por Peres
OLÁ!
POR FAVOR, PODERIAM ME AJUDAR A SOLUCIONAR ESSE PROBLEMA?

TENHO UM VPS RODANDO MSQL + PHP PARA MEU SITE DE DOWNLOADS CRIADO EM PHP.
TUDO FUNCIONANDO PERFEITAMENTE, PORÉM SÓ É POSSÍVEL FAZER DOWNLOADS DE ARQUIVOS QUE TENHA TAMANHO NO MÁXIMO 2.1GB.

EXEMPLO:
QUERO BAIXAR UM SOFTWARE, AO CLICAR NO BOTÃO DOWNLOAD, O PHP CONSULTA O MYSQL E EM SEGUIDA É ABERTA A JANELA PARA DOWNLOAD SEM PROBLEMAS SE O ARQUIVO TIVER TAMANHO MAXIMO DE 2.1GB.

SE O ARQUIVO FOR MAIOR QUE 2.1GB, AO CLICAR NO BOTÃO DOWNLOAD O NAVEGADOR ABRE UMA PAGINA DE ERRO DE CONEXÃO COMO DESCRITO ABAIXO:

The connection was reset

The connection to the server was reset while the page was loading.

The site could be temporarily unavailable or too busy. Try again in a few moments.
If you are unable to load any pages, check your computer's network connection.
If your computer or network is protected by a firewall or proxy, make sure that Firefox is permitted to access the Web.


FIZ UM TESTE CRIANDO UM HIPERLINK APONTANDO DIRETO PARA O ARQUIVO SEM PRECISAR PASSAR PELO MYSQL E FUNCIONA NORMAL, A JANELA DOWNLOAD ABRE E POSSO FAZER O DOWNLOAD.
ISSO ME FEZ PENSAR QUE O PROBLEMA ESTÁ SENDO GERADO POR ALGUM BLOQUEIO DO MYSQL.

Re: Tamanho máximo permitido para download através da loja

Enviado: 27 Set 2016, 16:15
por Manoel Vidal
Olá @Peres.

O problema é na função nativa do PHP denominada filesize:
http://php.net/manual/pt_BR/function.filesize.php

Segundo o manual do PHP ela tem problema em identificar o tamanho de arquivos maiores que 2GB, neste caso a solução proposta no próprio manual é:
Para arquivos entre 2 Gb e 4 Gb você pode resolver esse problema utilizando sprintf("%u", filesize($file))
Então vamos fazer um teste!

Edite o arquivo:
catalog/controller/account/download.php

Localize a linha abaixo:
Código: Selecionar todos
header('Content-Length: ' . filesize($file));
E mude para:
Código: Selecionar todos
header('Content-Length: ' . sprintf("%u", filesize($file)));
Salve as alterações no arquivo, na administração da loja vá no menu Extensões->Modificações, e clique no botão Atualizar (cor azul), e depois faça um teste de download.

Espero ter ajudado. :)

Re: Tamanho máximo permitido para download através da loja

Enviado: 02 Out 2016, 08:57
por Peres
Olá Manoel Vidal!
Agradeço a atenção em dedicar um pouco do seu tempo para minha questão.
Acabei demorando em responder por estar uma grande correria aqui; assim que sobrar um tempinho estarei fazendo a alteração que você me passou e em seguida comentando o resultado.
Mais uma vez, obrigado!
Forte abraço!

Re: Tamanho máximo permitido para download através da loja

Enviado: 09 Out 2016, 02:03
por Peres
Olá Manoel Vidal!
Fiz a modificação, mas não obtive sucesso. Testei em outra versão da opencart e o erro também acontece.
Buscando solucionar o problema, descobri que muitas pessoas tem esse mesmo problema. :(
Continuarei buscando solução, caso encontrar, compartilharei aqui com o pessoal.
De qualquer forma, obrigado pela dica. Somando conhecimentos! ;)