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