3

У меня есть zip-архив ~ 250Mb, расположенный на HTTP-сервере Apache. Несколько пользователей жаловались на "поврежденную папку zip" после загрузки файла непосредственно с веб-сайта (хотя сайт построен на Drupal, но использует публичный метод загрузки, поэтому его следует загружать напрямую)

Сообщение об ошибке при попытке открыть его в Windows:

Сжатая (zip) папка неверна или повреждена

Я сам попробовал это на Windows XP и использую Firefox 14 и IE8. Иногда он загружается и открывается правильно, иногда я получаю сообщение об ошибке.

Другой пользователь работает в Windows 7 и использует Internet Explorer и получил это сообщение после нескольких попыток загрузки.

Когда я загружаю через FTP с помощью Filezilla, я могу открыть файл zip без ошибок.

Поскольку загрузка по FTP и HTTP работает иногда, то я предполагаю, что файл на сервере не поврежден, но что-то происходит во время загрузки, и повторная загрузка файла ничего не исправит (и я пробовал это).

Я создал zip-файл с помощью IZArc, но я не уверен, что метод создания в этом случае уместен, так как иногда он работает.

  1. Что вызывает вышеуказанные сообщения об ошибках?
  2. Почему это происходит иногда, а не постоянно?
  3. Что я могу сделать, чтобы в будущем файлы zip открывались без ошибок?

6 ответов6

4

Что вызывает вышеуказанные сообщения об ошибках?

Возможно, загрузка повреждена или усечена (не завершена). Проверьте, совпадает ли размер загружаемых файлов с размером на сервере.

Почему это происходит иногда, а не постоянно?

Загрузка может быть усечена из-за разрыва соединения, что является случайным - это может произойти, а может и не произойти. Если качество вашего соединения лучше, оно, вероятно, будет менее вероятным.

Что я могу сделать, чтобы в будущем файлы zip открывались без ошибок?

Укажите контрольные суммы для всех ваших загрузок и попросите пользователей проверить их. Однако вы не можете избежать проблем с сетью. Вы можете поговорить с вашим хозяином.

1

Одна вещь, которую вы можете сделать, чтобы устранить неполадки, это использовать MD5 или SHA-1 хэши этого zip-файла. Я предполагаю, что у вас есть оригинальный почтовый индекс, доступный для вас в автономном режиме.

Используя Cygwin, вы можете вычислить хэш SHA-1 или MD5 вашего zip-файла, а затем опубликовать результат. Хеши действительно полезны, потому что их можно использовать для проверки на битовом уровне, что один файл точно такой же, как другой. Например: хеш для файла, содержащего "0123456789", равен 3749f52bb326ae96782b42dc0a97b4c1. Хеш для файла, содержащего "1123456789", равен b0b7fa225796be83e7fea1345c13d3dd.

Если я правильно помню мой ASCII, разница между двумя строками составляет всего один бит, но, как вы можете видеть, в результирующих хэшах есть огромная разница. Публикация хеша MD5 или SHA-1 - очень распространенная вещь в мире разработки программного обеспечения, поскольку это очень хороший способ убедиться, что ваши файлы не повреждены. После публикации хеша MD5/SHA-1 ваши клиенты могут получить хеш почтового индекса, чтобы увидеть, действительно ли он поврежден или нет.

Существует множество утилит для Windows, Linux и Mac, которые будут генерировать хэши MD5 и SHA-1. Я использую Cygwin, потому что это бесплатно.

1

Это обычно происходит, когда одно из имен файлов в ваших папках имеет специальный символ, такой как кавычки " . Вы должны игнорировать эти файлы.

Но это трудно, когда у вас есть несколько тысяч файлов, может быть, вы можете попробовать 7-Zip.

0

Если файл на стороне клиента имеет правильный размер, это может быть вызвано неисправной памятью на клиентском ПК или неисправным сетевым оборудованием между ними. Часто случайное переключение битов не особенно заметно во многих приложениях, но когда дело доходит до контрольных сумм, которые используются для проверки целостности архива, каждый бит имеет значение, и эти ошибки становятся очевидными.

0

Ах, user110346 на что-то.

У меня была такая же проблема - я создал .zip на Mac, что привело к ошибке в Windows 7 (но правильно извлечено на Mac).

Следуя его подсказке, я заметил, что у меня есть куча папок с маркером в названии (опция-8 на клавиатуре Mac). Удалил все эти папки, заново заархивировал и Presto - файл .zip работает без проблем в Windows.

Таким образом, очевидно, что использование символов, недопустимых в Windows, в именах файлов, содержащихся в zip-файле, приведет к тому, что Windows сообщит об ошибке « сжатый (zip-файл) XYZXYZ неверен » при открытии .zip-файла.

0

Я использую Windows XP. Я получал то же сообщение и не мог открыть zip-файл, пока не загрузил winzip185 из Интернета. Затем изнутри winzip я смог легко открыть файл и перетащить его на рабочий стол. Надеюсь, это поможет!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .