java & struts file download

31 01 2008

Your file POJO will look somthing like this:
public interface MyFile
{
public int getAppraisalFindingsFileId();
public void setAppraisalFindingsFileId(int appraisalFindingsFileId);
public int getAppraisalId();
public void setAppraisalId(int appraisalId);
public String getFileName();
public void setFileName(String fileName);
public int getFileSize();
public void setFileSize(int fileSize);
public Calendar getUploadedDate();
public void setUploadedDate(Calendar uploadedDate);
public String getUploadedBy();
public void setUploadedBy(String uploadedBy);
public byte[] getFileData();
public void setFileData(byte[] fileData);
}

Once you have your file data do something similar to this in your Forms Action class execute method:
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception
{
//...
// do something like this...
response.setContentLength(myFile.getFileSize());
response.setContentType("application/x-file-download");
response.setHeader("Content-disposition",
"attachment; filename="
+ URLEncoder.encode(myFile.getFileName(), "UTF-8"));
response.setHeader("Cache-Control",
"max-age=600");
ServletOutputStream outStream = response.getOutputStream();
outStream.write(myFile.getFileData());
outStream.flush();
//...
}


Actions

Information

Leave a comment