2012-03-21 2 views
7

Я загрузил почтовую папку с использованием ввода файла, но когда я проверяю, является ли этот zip действительным или нет, результат был: не является допустимым файлом pkzip, я не знаю, что является спецификацией действительного PKZIP. Я использовал этот код для проверки:Действительный zip-файл в python

form = cgi.FieldStorage() 
file_upload = form['file[]'] 
if zipfile.is_zipfile(file_upload.filename): 
    print "%s is a valid pkzip file" % file_upload.filename 
else: 
    print "%s is not a valid pkzip file" % file_upload.filename 

Я не знаю, почему, например, когда я загрузить test.zip, о/р будет: test.zip не является допустимым файлом PKZIP, я нужна помощь. Спасибо

+0

Какую версию Python вы используете? – katrielalex

ответ

10

zipfile.is_zipfile берет путь к файлу или файлоподобному объекту. Вы не передаете его, так что он терпит неудачу.

Задать вопрос о file_upload.file.

+0

: я использовал python 2.5 и работал над eclipse, я попробовал, как вы говорите, файл_upload.file, но ошибка: принуждение к Unicode: нужна строка или буфер, cStringIO.StringO найден. В чем проблема, пожалуйста? –

+0

Вам нужно будет прочитать файл - это может быть '.getvalue()'; Я не помню точный метод - и передаю данные в 'zipfile'. Или иначе напишите его в 'TemporaryFile'. – katrielalex

+0

@ katrielalex: как я могу получить путь к загруженному файлу, чтобы использовать его в: zipfile.is_zipfile ??? Спасибо –

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