Found the culprit, but it doesn't make any sense to me.

This one particular page was triggering the export by using a GET operation.  
The other pages where it was working fine was using javascript to set a form 
value and then submitted the form to the action, inevitably doing a POST 
operation instead.

Why would GET vs POST make a difference in this case?

> -----Original Message-----
> From: Maurizio Cucchiara [mailto:maurizio.cucchi...@gmail.com]
> Sent: Wednesday, December 08, 2010 12:14 PM
> To: Struts Users Mailing List
> Subject: Re: Result Type Stream Corrupted
> 
> In my experience this kind of issue usually depends on the content
> length value.
> As far I can recall, you should be able to monitor net activity
> through firebug. Check that content length is equal to the effective
> file size.
> 
> 
> 2010/12/8 CRANFORD, CHRIS <chris.cranf...@setech.com>:
> >
> > I have several actions in my application where a user can click an
> > export option on the page and the content that was rendered to the
> > screen gets formatted in a file, zipped, and then streamed to the
> client
> > browser using the stream result type.  The problem is that for one
> > particular page, the result seems to be corrupted and the zip file
> > cannot be opened, but the same code seems to work in other actions.
> >
> > public class BaseAction extends ActionSupport
> > {
> >  private InputStream downloadStream;
> >  private String      downloadFileName;
> >  private String      downloadContentType;
> >  private long        downloadBufferSize;
> >  private long        downloadFileSize;
> >
> >  // getter/setters
> > }
> >
> > public class SupplierAction extends BaseAction
> > {
> >  public String search()
> >  throws Exception
> >  {
> >    if(doExport())
> >    {
> >      ByteArrayOutputStream data =
> > supplierService.getExportStream(searchCriteria);
> >      setDownloadStream(new ByteArrayInputStream(data));
> >      setDownloadContentType("application/zip");
> >      setDownloadBufferSize(1024);
> >      setDownloadFileSize(data.size());
> >      setDownloadFileName("suppliers.zip");
> >      return "download";
> >    }
> >
> >    vendorList = supplierService.getSearch(searchCriteria);
> >    // return to render jsp
> >    return SUCCESS;
> >  }
> > }
> >
> > In our struts.xml file, I simply defined "download" as a global
> result
> > definition so that all of our applications could easily handle
> passing
> > downloadable content back to the browser if coded.  Here's the
> > definition
> >
> > <global-results>
> >  <result name="download" type="stream">
> >    <param name="inputName">downloadStream</param>
> >    <param name="contentType">${downloadContentType}</param>
> >    <param name="bufferSize">${downloadBufferSize}</param>
> >    <param name="contentLength">${downloadFileSize}</param>
> >    <param name="contentDisposition">attachment;
> > filename="${downloadFileName}"</param>
> >  </result>
> > </global-result>
> >
> > My initial thought was that the ZIP file was being damaged.  I
> checked
> > in the service layer by having my byte array written to a file on
> disk,
> > the file contents were fine and could be opened locally.  Secondly I
> > performed the same test in the action in the event there was a
> problem
> > handing the data back to the action layer.  The contents written to
> disk
> > from the action layer were also fine.
> >
> > Anyone have any ideas what could be my problem????
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> > For additional commands, e-mail: user-h...@struts.apache.org
> >
> >
> 
> 
> 
> --
> Maurizio Cucchiara
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> For additional commands, e-mail: user-h...@struts.apache.org
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to