Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá galera, depois de muito pesquisar esse erro eu simplesmente desisto, mas não antes de vir aqui no grande iMasters e ver se alguém pode me ajudar.
Eu fiz uma galeria de imagem onde o usuário pode subir as fotos, usei html5 - multiple, fiz salvar as imagens tanto no banco de dados como no diretório, até ai tudo bem, subi várias fotos e tudo funcionou perfeitamente, então recebo um e-mail do cliente dizendo que ele está recebendo um erro ao subir as fotos, eu tento enviar as fotos que ele me enviou e recebo o seguinte erro:
Bad Request
Your browser sent a request that this server could not understand.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Bom, então eu pensei, estranho, vou subir outras fotos e ver se o erro persisti, e elas subiram normalmente, então eu comecei a subir as fotos que ele me passou aos poucos.
Subiu praticamente todas, menos 2, que acusavam esse erro o tempo todo, o formato, tamanho, dimensões, era tudo compatível, apenas naquelas duas fotos não subiam de jeito nenhum, nenhum error log é gerado no servidor, eu já tentei limpar o cache, trocar de navegador, já tentei tudo praticamente, única coisa que o navegador acusa é:
Failed to load resource: the server responded with a status of 400 (Bad Request)
Então eu pensei: A foto está corrompida, só pode ser isso, eu abri a imagem no Photoshop, salvei a imagem nos padrões do Photoshop e ela subiu normalmente, sem apresentar o maldito do erro.
Bom eu quero saber duas coisas:
1° A foto realmente estava corrompida? Eu conseguia visualizar ela normalmente sem nenhum errro, muito estranho isso.
2° Tem algum jeito de colocar no PHP para ignorar esse erro e salvar as imagens que não apresentam esse problema? Porque quando acontece esse erro se eu mandar salvar 50 imagens, e uma tiver esse erro simplesmente nenhum salva, e também não diz qual destas fotos está com erro. Teria algum jeito de pelo menos sinalizar qual a foto que está com erro?
Obrigado desde já :)
Olá Bruno,
Primeiramente obrigado por responder, eu fiz o que você falou e a foto subiu em outro sistema igual, o problema é que eu testei em outro servidor, a hospedagem desse meu cliente não está comigo, só pode ser alguma configuração do servidor então, alguma alteração no php.ini ou um problema suhosin será? Existe algum jeito de ignorar o erro?
Até
Complicado dizer, já comparou o [inline]phpinfo()[/inline] de ambos os servidores?
Lembre-se que se o código funcionou localmente há grandes de a instalação local ser o problema.
Sem conhecer o sistema é difícil dizer.
Num primeiro momento, experimente criar um formulário de upload "old school", de envio único, com o mínimo de PHP necessário para efetuar o upload e teste com uma imagem boa e a imagem do seu cliente.
Se funcionar, mude o formulário para HTML 5. Continuou funcionando, implemente o código minimalista no lugar do antigo.
Se ainda assim funcionar, o código antigo tinha problemas. Se parar de funcionar, pode ser má configuração do servidor.