У меня есть zip-архив ~ 250Mb, расположенный на HTTP-сервере Apache. Несколько пользователей жаловались на «поврежденную папку zip» после загрузки файла непосредственно с веб-сайта (хотя сайт построен на Drupal, но использует публичный метод загрузки, поэтому его следует загружать напрямую)
Сообщение об ошибке при попытке открыть его в Windows:
Сжатая (zip) папка неверна или повреждена
Я сам попробовал это на Windows XP и использую Firefox 14 и IE8. Иногда он загружается и открывается правильно, иногда я получаю сообщение об ошибке.
Другой пользователь работает в Windows 7 и использует Internet Explorer и получил это сообщение после нескольких попыток загрузки.
Когда я загружаю через FTP с помощью Filezilla, я могу открыть файл zip без ошибок.
Поскольку загрузка по FTP и HTTP работает иногда, то я предполагаю, что файл на сервере не поврежден, но что-то происходит во время загрузки, и повторная загрузка файла ничего не исправит (и я пробовал это).
Я создал zip-файл, используя IZArc, но я не уверен, что метод создания в этом случае уместен, поскольку иногда он работает.
- Что вызывает вышеприведенные сообщения об ошибках?
- Почему это происходит иногда и не всегда?
- Что я могу сделать, чтобы в будущем файлы zip открывались без ошибок?
Content-Length
заголовок при загрузке файла, либо кодировка передачи фрагментирована. В противном случае возможно усечение.Content-Length
заголовок? Благодарю.Content-Length
заголовок отправляется со значением, равным размеру файла, поэтому, похоже, все в порядке.Ответы:
Возможно, загрузка повреждена или усечена (не завершена). Проверьте, совпадает ли размер загружаемых файлов с размером на сервере.
Загрузка может быть усечена из-за разрыва соединения, что является случайным - это может произойти, а может и не произойти. Если качество вашего соединения лучше, оно, вероятно, будет менее вероятным.
Укажите контрольные суммы для всех ваших загрузок и попросите пользователей проверить их. Однако вы не можете избежать проблем с сетью. Вы можете поговорить с вашим хозяином.
источник
Единственное, что вы можете сделать, чтобы выяснить, что происходит, - это использовать 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, потому что это бесплатно.
источник
Это обычно происходит, когда одно из имен файлов в ваших папках имеет специальный символ, такой как кавычки
"
. Вы должны игнорировать эти файлы.Но это трудно, когда у вас есть несколько тысяч файлов, может быть, вы можете попробовать 7-Zip .
источник
Ах, user110346 на что-то.
У меня была такая же проблема - я создал .zip на Mac, что привело к ошибке в Windows 7 (но правильно извлечено на Mac).
Следуя его подсказке, я заметил, что у меня есть куча папок с маркером в названии (опция-8 на клавиатуре Mac). Удалил все эти папки, заново заархивировал и Presto - файл .zip работает без проблем в Windows.
Таким образом, очевидно, что использование символов, недопустимых в Windows, в именах файлов, содержащихся в zip-файле, заставит Windows сообщать об ошибке « сжатый (zip-файл) XYZXYZ неверен » при открытии .zip-файла.
источник
Если файл на стороне клиента имеет правильный размер, эта ситуация может быть вызвана неисправной памятью на клиентском ПК или неисправным сетевым оборудованием между ними. Часто случайное переключение битов не особенно заметно во многих приложениях, но когда дело доходит до контрольных сумм, которые используются для проверки целостности архива, каждый бит имеет значение, и эти ошибки становятся очевидными.
источник
Я использую Windows XP. Я получал то же сообщение и не мог открыть zip-файл, пока не загрузил winzip185 из Интернета. Затем изнутри winzip я смог легко открыть файл и перетащить его на рабочий стол. Надеюсь, это поможет!
источник