2012-03-21 17 views
7

मैंने फ़ाइल इनपुट का उपयोग करके ज़िप फ़ोल्डर अपलोड किया है, लेकिन जब मैं जांचता हूं कि यह ज़िप मान्य है या नहीं; परिणाम था: वैध pkzip फ़ाइल नहीं है, मुझे नहीं पता कि वैध के लिए विनिर्देश क्या है PKZIP। ? मैं जाँच करने के लिए इस कोड का प्रयोग किया:पायथन में मान्य ज़िप फ़ाइल

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 अपलोड करें, ओ/p हो जाएगा: test.zip एक वैध PKZIP फ़ाइल नहीं है, मैं मदद की ज़रूरत है। धन्यवाद

+0

पाइथन का कौन सा संस्करण आप उपयोग कर रहे हैं? – katrielalex

उत्तर

10

zipfile.is_zipfile फ़ाइल या फ़ाइल जैसी ऑब्जेक्ट का पथ लेता है। आप इसे पास नहीं कर रहे हैं, इसलिए यह विफल हो जाता है।

इसके बजाय file_upload.file पर पूछें।

+0

: मैंने पाइथन 2.5 का उपयोग किया और ग्रहण पर काम किया, मैंने कोशिश की जैसे मैंने कहा; file_upload.file, लेकिन त्रुटि यह है: यूनिकोड को मजबूर करना: स्ट्रिंग या बफर की आवश्यकता है, cStringIO.StringO मिला। कृपया समस्या क्या है? –

+0

आपको फ़ाइल को पढ़ने की आवश्यकता होगी - यह '.getvalue()' हो सकता है; मुझे सटीक विधि याद नहीं है - और डेटा को 'zipfile' पर पास कर दें। अन्यथा इसे 'अस्थायी फ़ाइल' पर लिखें। – katrielalex

+0

@ katrielalex: मैं इसे अपलोड करने के लिए अपलोड की गई फ़ाइल का मार्ग कैसे प्राप्त कर सकता हूं: zipfile.is_zipfile ??? धन्यवाद –

संबंधित मुद्दे