commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bibs L <bibsotherem...@yahoo.com>
Subject Help! Download .CSV file using SurvletResponse, it added unwanted characters in the end of the file!!
Date Tue, 17 Jul 2007 13:47:08 GMT
Hi, I need some help woth downloading .CSV file with the regular ServletResponseObject, it
is adding unwanted characters (2 boxes) in the end of the file when I download it.  Your help
would be greatly appreciated!

  I have a download.jsp file, that calls a manage bean downloadfile.java to render a file,
it is all working well with the excaption of downloading .CSV file.  The problem is that when
I try to download a CSV file, by clickin on the link, thats calls the Download.java bean which
set the Response object, and opens up the "Download File Diaglog - Open/Save As", when I open/save
as the CSV file, it added unwanted characters at the very bottom of the file.  Even when I
tested to upload a totally empty file, when I download it, it added the unwanted characters
(2 Boxes) , where it should have been empty.  
   
  Orignally, I have the <html><body>..etc tags on the download.jsp, and all of
those HTML code were added to the end of the CSV file in addition to the unwanted file.  So,
I removed all of the unnesscary <html> tags, and the HTML codes are gone from the CSV
file, but the unwanted characters are still being added at the end of the file.  I have no
idea how it got there.  PLEASE HELP!
   
  ---------------------------------------------------
  Download.jsp:
  <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
  <%@ page import="java.util.ResourceBundle" %> 
    
<%@ page import="com......bean.DownloadFileBean" %>
  <f:loadBundle basename=".....nl.Resource_en" var="msgBundle" />
  
  <% 
  javax.faces.context.FacesContext facesContext = null; 
  ResourceBundle messages = ResourceBundle.getBundle("com......nl.ErrorMessages"); 
  LogServices LOG = LogServicesFactory.getInstance().createLogServices(DownloadFileBean.class);
   
  try{ 
   
  //get an instance from faceContext
  facesContext = javax.faces.context.FacesContext.getCurrentInstance(); 
  DownloadFileBean downloadFileBean = (DownloadFileBean)facesContext.getApplication().getVariableResolver().resolveVariable(facesContext,
"downloadFileBean");
  
  String result = downloadFileBean.DownloadFile(); 
  
  
   
  } catch (Exception e) {
  LOG.error("Exception : RenderFile.jsp - " + e.getMessage(), e); 
   
  } finally {
  if (facesContext != null) facesContext = null; 
  } 
  %>
  
   
  ---------------------------------------------------
  DownloadFile.Java:
   
   public boolean DownloadFile (){ 
    
  boolean result = false;  
  FacesContext faces = null;
  HttpServletResponse response = null;  
  File file = null;  
  FileInputStream fileIn = null;   
  ServletOutputStream output = null;   
   
    try{   
    
   MyFileBean myFileBean = (MyFileBean)getBean("myFileBean");    
  
   String fileName = myFileBean.getRenderingFileName(); 
   String filePath = myFileBean.getRenderingFilePath();
   String fileFullPath = myFileBean.getRenderingFilePath() + fileName;    
   LOG.debug("file full path  = " + fileFullPath);           
      
   if (fileFullPath == null) {          
          LOG.debug("file path is null...");  
          return result;
         }               
   
         file = new File(fileFullPath); 
         
   if(file.exists() == false){
    LOG.debug(fileName + " - file not found...");    
    return result;
   }      
     faces = FacesContext.getCurrentInstance();
   response = (HttpServletResponse) faces.getExternalContext().getResponse();   
      
      long startTime = System.currentTimeMillis();
     
      fileIn = new FileInputStream(file);     
   output = response.getOutputStream();   
   response.setContentType("application/octet-stream");     
   response.setHeader("Content-Disposition","attachment; filename=\"" + file.getName() + "\"");
   IOUtils.copy(fileIn, output);   
   output.flush();    
   faces.responseComplete();
   
   long endTime = System.currentTimeMillis();
   
   result = true; 
   LOG.debug("Total Time Taken to download: "+(endTime - startTime) + " ms");            
  
  } catch (FileNotFoundException e) {                
   LOG.error("FileNotFoundException : DownloadFileBean.java - " + e.getMessage(), e);    
    
  } catch (IOException e) {      
   LOG.error("IOException : DownloadFileBean.java - " + e.getMessage(), e);
  } catch (Exception e) {
   LOG.error("Exception : DownloadFileBean.java - " + e.getMessage(), e); 
  } finally {
   //Close output and input resources. 
   try {   
       
    if (faces != null) faces = null;
    if (response != null) response = null;      
    if (file != null) file = null;   
    if (output != null) output.close();            
   } catch (Exception e) {       
    LOG.error("Exception : DownloadFileBean.java - Closing objects " + e.getMessage(), e);
   
   }
  } 
  LOG.debug(">>>END - DownloadFileBean : downloadFile ");  
  return result;
 }

  ----------------------------------------------------------
  Unwanted Code added to CSV File: (Used to be like this before I removed all the HTML tags
from Download.jsp)
                 
   
      <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">     <META
name="GENERATOR" content="IBM Software Development Platform">        <TITLE>Render
File</TITLE>    </HEAD>                              <body class="bodyWithinFrame">
   <form id="RenderFileForm" method="post" action="/Download.jsp" enctype="multipart/form-data">
                 4 unwanted boxes...
   
      <input type="hidden" name="RenderFileForm" value="RenderFileForm" /></form>
   </body>            </HTML>  
   
   
  ----------------------------------------------------------
  Unwanted Code added to CSV File: (after I removed all the HTML tags from Download.jsp)
              
  2 boxes (I can't copy and pasted the unwanted boxes into the email.)

       
---------------------------------
Be a better Heartthrob. Get better relationship answers from someone who knows.
Yahoo! Answers - Check it out. 
Mime
  • Unnamed multipart/alternative (inline, 8-Bit, 0 bytes)
View raw message