• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Rob Spoor
  • Tim Cooke
  • Junilu Lacar
Sheriffs:
  • Henry Wong
  • Liutauras Vilda
  • Jeanne Boyarsky
Saloon Keepers:
  • Jesse Silverman
  • Tim Holloway
  • Stephan van Hulst
  • Tim Moores
  • Carey Brown
Bartenders:
  • Al Hobbs
  • Mikalai Zaikin
  • Piet Souris

Excel file is corrupted when i download it

 
Ranch Hand
Posts: 246
Firefox Browser Oracle
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
hi, i have generated excel file using Apache POI .it is generated in my root path under excel folder.when user click save as excel the created file should download to user chosen location. it is get downloaded to that perticular path given by user but, when i try to open a message is showing like this file format corrupted ......my code on click of button on jsp is

but the generated code is giving a corrupted excel file
 
mallikarjun dontamsetti
Ranch Hand
Posts: 246
Firefox Browser Oracle
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
It is working when i deployed it on web not in local system why?
 
Marshal
Posts: 22453
121
Eclipse IDE Spring VI Editor Chrome Java Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You shouldn't use JSP files to display any binary file, including Excel files. Any whitespace between tags (like at the top, between import directives) can already be added to the output. That will cause corruption of binary files. Instead, use a servlet to display the binary file.
 
mallikarjun dontamsetti
Ranch Hand
Posts: 246
Firefox Browser Oracle
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
thanks
 
Rob Spoor
Marshal
Posts: 22453
121
Eclipse IDE Spring VI Editor Chrome Java Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You're welcome.
 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Your problem will be solved

Add response.reset();  before before setContentType();
 
Marshal
Posts: 74042
332
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Welcome to the Ranch

Please explain a bit more, but don't expect a reply from the original poster; this is an old thread.
 
Rob Spoor
Marshal
Posts: 22453
121
Eclipse IDE Spring VI Editor Chrome Java Windows
  • Likes 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
response.reset() will reset the entire response that has been built so far; the result is a clean response without any headers or body. There's an alternative in response.resetBuffer() that will only clear the body.

While those probably work, I stick by my statement from 9 years ago:

Rob Spoor wrote:You shouldn't use JSP files to display any binary file, including Excel files. Any whitespace between tags (like at the top, between import directives) can already be added to the output. That will cause corruption of binary files. Instead, use a servlet to display the binary file.

 
Saloon Keeper
Posts: 24314
167
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Rob Spoor wrote:You shouldn't use JSP files to display any binary file, including Excel files. Any whitespace between tags (like at the top, between import directives) can already be added to the output. That will cause corruption of binary files. Instead, use a servlet to display the binary file.



Repeated for emphasis.

JSPs are great for text files, including XML, JSON and YAML. For binary files, they are not. For one thing, the response buffers have been pre-loaded with headers related to the idea that text is coming out. The response.reset() tells the server to undo that work.

So in addition to being ill-suited for binary output, you're being less efficient by making it do and undo useless work. Servlets don't have that problem.
 
You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop
https://coderanch.com/wiki/718759/books/Building-World-Backyard-Paul-Wheaton
reply
    Bookmark Topic Watch Topic
  • New Topic