2012-03-14 8 views
6

मैं ब्राउज़र से एक एक्सेल फ़ाइल अपलोड कर रहा हूं। मैं पीओआई जार का उपयोग कर रहा हूँ। लेकिन त्रुटि अमान्य हेडर हस्ताक्षर प्राप्त करना; 3255307777713450285 पढ़ते हैं, उम्मीद -2226271756974174256एक्सेल त्रुटि पढ़ें: अमान्य हेडर हस्ताक्षर। कैसे हल करें?

दो jsp फ़ाइलें नीचे

मैं का इस्तेमाल किया है: JSP 1:

<form action="Upload.jsp" enctype="MULTIPART/FORM-DATA" method=post > 
    <input type="file" name="filename" /> 
    <input type="submit" value="Upload" /> 
</form> 

JSP 2: Upload.jsp

try{ 
     InputStream file = request.getInputStream(); 
     POIFSFileSystem myFileSystem = new POIFSFileSystem(file); 
     HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem); 
     HSSFSheet mySheet = myWorkBook.getSheetAt(0); 
     Iterator rowIter = mySheet.rowIterator(); 
     rowIter.next(); 
     while (rowIter.hasNext()) { 
      HSSFRow myRow = (HSSFRow) rowIter.next(); 
      Iterator cellIter = myRow.cellIterator(); 
      cellIter.next(); 
      System.out.println(((HSSFCell)cellIter.next()).toString()); 
     } 


    }catch(Exception ex){ 
     System.out.println(ex.getMessage()); 
    } 

लेकिन लाइन POIFSFileSystem में त्रुटि मिल रही है myFileSystem = नया POIFSFileSystem (फ़ाइल);

इस समस्या को कैसे हल करें?

+0

क्या आप वाकई 'InputStream फ़ाइल = request.getInputStream() का उपयोग आवश्यक फ़ाइल प्राप्त कर रहे हैं;'। मुझे ऐसा नहीं लगता। फ़ाइलस्ट्रीम का उपयोग करने का प्रयास करें और जेएसपी –

+0

से आईडी का उपयोग कर फ़ाइल प्राप्त करें अपवाद क्या है? 'NullPointerException', 'IOException'? –

+0

@ लुइगी मेंडोज़ा अमान्य हेडर हस्ताक्षर; 3255307777713450285 पढ़ें, अपेक्षित -2226271756974174256 यह अपवाद उठाया गया है। –

उत्तर

9

आपको यह त्रुटि मिल रही है क्योंकि आपकी फ़ाइल वास्तव में एक्सेल .xls फ़ाइल नहीं है, यह कुछ और है।

मेरा सुझाव है कि आप नोटपैड में फ़ाइल खोलने का प्रयास करें, और वहां देखें। इस प्रकार की लगभग सभी त्रुटियां यह होती हैं कि एक .csv या .html फ़ाइल का नाम बदलकर .xls कर दिया गया है। एक्सेल खुशी से एचटीएमएल फाइलों को लोड करेगा (तालिका को स्प्रेडशीट के रूप में प्रस्तुत करना) और सीएसवी फाइलें, और आपको चेतावनी नहीं देता है कि आपको उन पर गलत एक्सटेंशन मिला है।

ध्यान दें कि यदि आप .xlsx फ़ाइल को .xls में बदलते हैं और पीओआई के POIFSFileSystem या HSSFWorkbook को पास करते हैं, तो आपको एक और विशिष्ट त्रुटि चेतावनी मिलेगी कि आपको इसके बजाय .xlsx फ़ाइल मिली है। आपको केवल यह त्रुटि मिल रही है क्योंकि पीओआई को यह नहीं पता कि आपकी फाइल क्या है, केवल यह है कि यह एक .xls

0

केवल एक विचार है, यदि आप मेवेन का उपयोग करते हैं तो संसाधन टैग फ़िल्टरिंग में सुनिश्चित करें कि "गलत "। अन्यथा Maven अपने pom.xml में नकल चरण

में भ्रष्ट xls फ़ाइलों जाता