KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > cms > downloadfiles > action > DownloadFilesAction


1 package com.dotmarketing.cms.downloadfiles.action;
2
3 import java.io.BufferedInputStream JavaDoc;
4 import java.io.FileInputStream JavaDoc;
5
6 import javax.servlet.ServletOutputStream JavaDoc;
7 import javax.servlet.http.HttpServletRequest JavaDoc;
8 import javax.servlet.http.HttpServletResponse JavaDoc;
9
10 import org.apache.struts.action.ActionForm;
11 import org.apache.struts.action.ActionForward;
12 import org.apache.struts.action.ActionMapping;
13 import org.apache.struts.actions.DispatchAction;
14
15 import com.dotmarketing.beans.Identifier;
16 import com.dotmarketing.factories.IdentifierFactory;
17 import com.dotmarketing.factories.InodeFactory;
18 import com.dotmarketing.portlets.files.factories.FileFactory;
19 import com.dotmarketing.portlets.files.model.File;
20 import com.dotmarketing.util.Logger;
21
22 /**
23  *
24  * @author Oswaldo
25  *
26  */

27 public class DownloadFilesAction extends DispatchAction{
28     
29     
30     public ActionForward unspecified(ActionMapping mapping, ActionForm jf, HttpServletRequest JavaDoc request,
31             HttpServletResponse JavaDoc response) throws Exception JavaDoc {
32         
33         return mapping.findForward("");
34     }
35     
36     public ActionForward downloadFile(ActionMapping mapping, ActionForm jf, HttpServletRequest JavaDoc request,
37             HttpServletResponse JavaDoc response) throws Exception JavaDoc {
38         
39         String JavaDoc inode = request.getParameter("inode");
40         
41         
42         Identifier iden = IdentifierFactory.getIdentifierByInode(InodeFactory.getInode(inode, File.class));
43         //Identifier iden = (Identifier) InodeFactory.getInode(inode, Identifier.class);
44
File assetFile = (File) IdentifierFactory.getWorkingChildOfClass(iden, File.class);
45         response.setContentType(assetFile.getMimeType());
46         response.setHeader("Content-Disposition", "attachment; filename=\"" + assetFile.getFileName() + "\"");
47         
48         ServletOutputStream JavaDoc out = response.getOutputStream();
49         try {
50             FileInputStream JavaDoc fis = new FileInputStream JavaDoc(FileFactory.getRealAssetPath(assetFile));
51             BufferedInputStream JavaDoc bis = new BufferedInputStream JavaDoc(fis);
52             byte[] buf = new byte[1024];
53             int i = 0;
54             
55             while ((i = bis.read(buf)) != -1) {
56                 out.write(buf, 0, i);
57             }
58             bis.close();
59             fis.close();
60             out.close();
61         }
62         catch (Exception JavaDoc e) {
63             Logger.error(this, "File not Found", e);
64             response.sendError(404, "File not Found");
65         }
66         
67         return mapping.findForward("");
68     }
69     
70     
71 }
72
Popular Tags