"A pasta compactada (zip) é inválida ou corrompida" erro após o download do arquivo zip - às vezes, mas nem sempre

3

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.

  1. O que causa as mensagens de erro acima?
  2. Por que isso acontece algumas vezes e não o tempo todo?
  3. O que eu poderia fazer para garantir que os arquivos zip sejam abertos sem erros no futuro?
authentictech
fonte
A resposta para todas as suas perguntas é que o arquivo está corrompido. Eles obtêm esse erro ao usar o design de software real para extrair um arquivo .zip?
Ramhound
1
Verifique se os clientes estão recebendo um Content-Length cabeçalho quando baixam o arquivo ou a codificação de transferência é fragmentada. Caso contrário, o truncamento é possível.
David Schwartz
@Ramhound, essa é mais a questão do que a resposta. A pergunta é: O que causa a corrupção nos casos em que é corrupto às vezes e não em outros (e para diferentes pessoas em diferentes conexões de rede / configurações de software). Por que deveria ser tão inconsistente assumindo que o arquivo original está OK?
authentictech
@ DavidSchwartz, isso soa promissor. Você pode esclarecer como alguém iria verificar se os clientes estão recebendo Content-Length cabeçalho? Obrigado.
authentictech
@ DavidSchwartz eu usei Violinista para verificar os cabeçalhos de resposta e Content-Length cabeçalho é enviado com valor que é o tamanho do arquivo, então parece que tudo está bem lá.
authentictech

Respostas:

4

O que causa as mensagens de erro acima?

O download provavelmente está corrompido ou truncado (incompleto). Verifique se o tamanho do arquivo baixado é o mesmo que o tamanho no servidor.

Por que isso acontece algumas vezes e não o tempo todo?

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.

O que eu poderia 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 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.

angelsl
fonte
Essa é provavelmente a resposta mais útil e completa, obrigado. Vou olhar para o que você diz e provavelmente voltar e marcar isso como a resposta. Enquanto isso, por que você acha que seria tão inconsistente, considerando diferentes usuários em diferentes conexões e configurações de software? Supondo que o arquivo original é OK (o que deve ser se, por vezes, abre) Eu não vejo porque eu particularmente estar tendo esse problema tão frequentemente como eu faço com este arquivo. Eu baixei muitos zips na minha vida e só ocasionalmente tenho arquivos corrompidos, mas não com tanta frequência quanto nesta instância. Obrigado.
authentictech
Particularmente, o que eu poderia pedir ao meu anfitrião para apontá-los na direção certa para uma possível solução para o problema? O que pode estar errado no final? Obrigado.
authentictech
1
É apenas com um zipfile particular? Você já testou com arquivos zip (ou outros arquivos) de tamanhos menores ou maiores? Pode ser um tamanho grande, fornecendo mais tempo para uma queda de conexão, e é por isso que você só vê esse problema com esse arquivo. Além disso, poderia ser o script PHP que atende ao download com o tempo esgotado (desde que você mencionou o Drupal)? Se não, você pode pedir ao seu host para verificar se há algum problema de conexão, mencionando esse problema.
angelsl
Eu não testei com os outros, mas vou tentar. Faz sentido que arquivos maiores possam ter mais problemas de queda de conexão. Eu e a maioria dos usuários estão em conexões de banda larga estáveis ​​(o TCP / IP não lida com esse problema?). Eu estou ligando diretamente para o arquivo, então eu suponho que o Drupal não se envolva nisso (embora possa se você mudar para o método de download privado). Nesse caso, os usuários não são técnicos e não lidariam com a verificação de somas de verificação. Eu recriou o zip usando o Windows em vez de software de terceiros para ver se isso faz diferença. Obrigado pela ajuda.
authentictech
O host não está fornecendo nenhuma ajuda além de dizer que eles podem fazer o download do arquivo OK no final, então, embora eu não ache que sei exatamente por que isso está acontecendo com tanta frequência, vou marcar isso como a resposta provavelmente se aplicam na maioria dos casos. Obrigado.
authentictech
1

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.

Green
fonte
Isso faz sentido em muitas situações. No entanto, estou lidando com usuários não técnicos, que não lidam com a verificação de hash, mas esse é um bom conselho em geral. Obrigado.
authentictech
1

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 .

user110346
fonte
1
Bem-vindo ao SU. Se você ignorar algum arquivo, você perderá algum conteúdo. Eu entendo que provavelmente significa sugerir evitar o uso de tal tipo de nomes.
Hastur
0

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.

Oleg V. Volkov
fonte
0

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!

Liz
fonte
O 7zip também extraiu algo para mim que gerou a mensagem de erro do OP com o extrator normal. Esquisito.
rogerdpack
0

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.

Demis
fonte
O caractere de bala é ilegal, eu acho ... estranho. Você também pode instalar o 7zip e usar sua opção "test" para testar se o arquivo zip está ruim ou não ...
rogerdpack