2016-10-21 2 views
0

php ZipArchive не может открыть zip-файл, который загружается с сервера. У меня есть почтовый файл, который я создал с помощью WinRAR и загруженный на мой сервер, местоположение файла находится здесь: http://myserver.com/uploads/test.zip Это действительный почтовый файл Вот мой кодошибка при загрузке zip-архива с сервера

Когда я запускаю этот код все, что я получаю

error: Not a zip archive.

Он открывает файл и извлекает его, но жалуется, что файл уже существует, даже если я удаляю файл.

Файл, который я получаю при доступе http://myserver.com/update/test.zip, поврежден, и я понятия не имею, почему этот же код, который я вставил выше, работал всего неделю назад.

ответ

1

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

Код выглядит нормально, поэтому я думаю, что это просто файл, который является проблемой.

UPDATE # 1:

Файл .zip теперь правильно. Попробуйте удалить файлы перед загрузкой и извлечением новых файлов. Вы можете использовать unlink ("uploads/update.zip"), возможно, вам также нужно сначала очистить каталог uploads/temp.

UPDATE # 2:

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

header("Content-Transfer-Encoding: Binary"); 

Также не забудьте закрыть ZipArchive после извлечения:

$zip->close(); 
+0

Я обновил свой ответ, вы можете проверить сейчас? –

+0

Я установил winzip самостоятельно, чтобы проверить файл, который я загружаю из кода4fun, и версия winzip 20.5 (12118) открывает его, какая версия winzip у вас есть? –

+0

@Maxlight Я обновил свой ответ. Я также использую WinZip версии 20.5 Pro. –

Смежные вопросы