Eu tenho um arquivo zip de aproximadamente 250 MB localizado em um servidor Apache HTTP. Vários usuários reclamaram de uma "pasta zip corrompida" após baixar o arquivo diretamente do site (embora o site seja construído em Drupal, mas está usando o método de download público, portanto deve ser um download direto)
A mensagem de erro quando tentam abri-lo no Windows é:
A pasta compactada (zip) é inválida ou corrompida
Eu tentei isso no Windows XP e usando o Firefox 14 e o IE8. Às vezes ele baixa e abre corretamente, às vezes recebo o erro.
Outro usuário está no Windows 7 e usando o Internet Explorer e recebeu esta mensagem após várias tentativas de download.
Quando faço download via FTP usando o Filezilla consigo abrir o arquivo zip sem erros.
Como o download FTP e HTTP funciona às vezes, presumo que o arquivo no servidor não esteja corrompido, mas algo acontece durante o download e reenviar o arquivo não resolveria nada (e eu tentei isso).
Criei o arquivo zip usando IZArc, mas não tenho certeza se o método de criação é relevante neste caso, pois às vezes funciona.
- O que causa as mensagens de erro acima?
- Por que isso acontece algumas vezes e não o tempo todo?
- O que posso fazer para garantir que os arquivos zip sejam abertos sem erros no futuro?
Responder1
O que causa as mensagens de erro acima?
O download provavelmente está corrompido ou truncado (incompleto). Verifique se o tamanho do arquivo baixado é igual ao tamanho do servidor.
Por que isso acontece algumas vezes e não o tempo todo?
O download pode ser truncado devido à queda da conexão, o que é algo aleatório - pode acontecer ou não. Se a qualidade da sua conexão for melhor, provavelmente será menos provável que isso ocorra.
O que posso fazer para garantir que os arquivos zip sejam abertos sem erros no futuro?
Forneça somas de verificação para todos os seus downloads e peça aos usuários que os verifiquem. No entanto, você realmente não pode evitar problemas de rede. Você pode querer falar com seu anfitrião.
Responder2
Uma coisa que você pode fazer para solucionar o que está acontecendo é usar hashes MD5 ou SHA-1 desse arquivo zip. Presumo que você tenha o zip original disponível off-line.
UsandoCygwin, você pode calcular um hash SHA-1 ou MD5 do seu arquivo zip e publicar o resultado. Hashes são muito legais porque podem ser usados para verificar em nível de bit se um arquivo é exatamente igual a outro. Por exemplo: O hash para um arquivo contendo "0123456789" é 3749f52bb326ae96782b42dc0a97b4c1. O hash para um arquivo contendo "1123456789" é b0b7fa225796be83e7fea1345c13d3dd.
Se bem me lembro do meu ASCII, há apenas uma diferença de um único bit entre as duas strings, mas como você pode ver, há uma enorme diferença nos hashes resultantes. Publicar um hash MD5 ou SHA-1 é algo muito comum no mundo do desenvolvimento de software, pois é uma ótima maneira de garantir que seus arquivos não sejam corrompidos. Depois de publicar o hash MD5/SHA-1, você pode fazer com que seus clientes façam um hash do zip para ver se ele está realmente corrompido ou não.
Existem muitos utilitários para Windows, Linux e Mac que irão gerar hashes MD5 e SHA-1. Eu uso o Cygwin porque é grátis.
Responder3
Isso geralmente ocorre quando um dos nomes de arquivo em suas pastas possui um caractere especial, como aspas "
. Você tem que ignorar esses arquivos.
Mas é difícil quando você tem vários milhares de arquivos, talvez você possa tentar7-zip.
Responder4
Se o arquivo no lado do cliente tiver o tamanho correto, essa situação poderá ser causada por falha na memória do PC do cliente ou no equipamento de rede intermediário. Freqüentemente, a troca aleatória de bits não é especialmente aparente em muitos aplicativos, mas quando se trata de somas de verificação usadas para verificar a integridade do arquivo, cada bit é importante e esses erros se tornam óbvios.