Eu tenho um arquivo zip de ~ 250Mb localizado em um servidor HTTP Apache. Vários usuários se queixaram de uma "pasta zip corrompida" depois de baixar o arquivo diretamente do site (embora o site seja baseado no Drupal, mas ele esteja usando o método de download público, portanto, deve ser um download direto)
A mensagem de erro quando eles tentam abri-lo no Windows é:
A pasta compactada (zip) é inválida ou corrompida
Eu tentei isso sozinho no Windows XP e usando o Firefox 14 e IE8. Às vezes, ele baixa e abre corretamente, às vezes eu recebo o erro.
Outro usuário está no Windows 7 e usa o Internet Explorer e recebeu esta mensagem após várias tentativas de download.
Quando eu faço o download via FTP usando o Filezilla, posso abrir o arquivo zip sem erros.
Como FTP e HTTP download funciona às vezes, então eu suponho que o arquivo no servidor não está corrompido, mas algo acontece durante o download e re-upload do arquivo não iria consertar nada (e eu tentei isso).
Eu criei o arquivo zip usando o 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 eu poderia fazer para garantir que os arquivos zip sejam abertos sem erros no futuro?
Content-Length
cabeçalho quando baixam o arquivo ou a codificação de transferência é fragmentada. Caso contrário, o truncamento é possível.Content-Length
cabeçalho? Obrigado.Content-Length
cabeçalho é enviado com valor que é o tamanho do arquivo, então parece que tudo está bem lá.Respostas:
O download provavelmente está corrompido ou truncado (incompleto). Verifique se o tamanho do arquivo baixado é o mesmo que o tamanho no servidor.
O download pode ficar truncado devido à queda da conexão, que é algo aleatório - pode acontecer e pode não acontecer. Se a qualidade da sua conexão for melhor, provavelmente será menos provável que ocorra.
Forneça somas de verificação para todos os seus downloads e faça com que os usuários os verifiquem. Você não pode evitar problemas de rede, no entanto. Você pode querer falar com o seu anfitrião.
fonte
Uma coisa que você pode fazer para solucionar o problema é usar hashes MD5 ou SHA-1 desse arquivo zip. Eu suponho que você tenha o zip original disponível para você offline.
Usando Cygwin , você pode calcular um hash SHA-1 ou MD5 do seu arquivo zip e publicar o resultado. Os hashes são muito legais porque podem ser usados para verificar o nível de bit de que um arquivo é exatamente igual ao outro. Por exemplo: O hash para um arquivo contendo "0123456789" é 3749f52bb326ae96782b42dc0a97b4c1. O hash para um arquivo contendo "1123456789" é b0b7fa225796be83e7fea1345c13d3dd.
Se eu me lembro bem do meu ASCII, há apenas uma diferença de bit entre as duas strings, mas como você pode ver, existe uma enorme diferença nos hashes resultantes. Publicar um hash MD5 ou SHA-1 é uma coisa muito comum no mundo do desenvolvimento de software, já que é uma maneira muito boa de garantir que seus arquivos não estejam 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.
Há muitos utilitários disponíveis para Windows, Linux e Mac que geram hashes MD5 e SHA-1. Eu uso o Cygwin porque é grátis.
fonte
Isso geralmente ocorre quando um dos nomes de arquivo em suas pastas tem 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 tentar 7-zip .
fonte
Se o arquivo no lado do cliente tiver o tamanho correto, essa situação pode ser causada por uma memória defeituosa no PC cliente ou por um equipamento de rede defeituoso no meio. Frequentemente, a troca de bits aleatória não é especialmente aparente em muitos aplicativos, mas quando se trata de somas de verificação que são usadas para verificar a integridade do arquivamento, cada bit é importante e esses erros se tornam óbvios.
fonte
Estou executando o Windows XP. Eu estava recebendo a mesma mensagem e não consegui abrir um arquivo zip até que eu baixei o winzip185 da internet. Então, de dentro do winzip, eu consegui abrir o arquivo facilmente e arrastá-lo e soltá-lo na minha área de trabalho. Espero que ajude!
fonte
Ah, user110346 está em algo.
Eu tive o mesmo problema - criou um .zip em um Mac que resultou em um erro no Windows 7 (mas extraído corretamente no Mac).
Seguindo sua sugestão, notei que tenho um monte de pastas com um marcador no nome (opção 8 no teclado do Mac). Removido todas as pastas, zipado novamente e pronto - o arquivo .zip funciona sem problemas no Windows.
Portanto, aparentemente, o uso de caracteres que são ilegais no Windows nos nomes de arquivos contidos no arquivo zip fará com que o Windows relate " o arquivo compactado (zipado) XYZXYZ é inválido "erro ao abrir o arquivo .zip.
fonte