commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Martin Cooper" <mart...@apache.org>
Subject Re: Help! Download .CSV file using SurvletResponse, it added unwanted characters in the end of the file!!
Date Tue, 17 Jul 2007 17:28:14 GMT
On 7/17/07, Bibs L <bibsotheremail@yahoo.com> wrote:
>
> 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!


This really is not related to Commons in any way that I can see, but...

  I have a download.jsp file


This is your problem. Move your code to a servlet. The extra characters are
almost certainly spaces or line breaks from your JSP page.

--
Martin Cooper


, 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, None, 0 bytes)
View raw message