Did you get this behavior with different browser? Maurizio Cucchiara
Il giorno 08/dic/2010 19.47, "CRANFORD, CHRIS" <chris.cranf...@setech.com> ha scritto: > 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 >