1 package com.dotmarketing.cms.downloadfiles.action; 2 3 import java.io.BufferedInputStream ; 4 import java.io.FileInputStream ; 5 6 import javax.servlet.ServletOutputStream ; 7 import javax.servlet.http.HttpServletRequest ; 8 import javax.servlet.http.HttpServletResponse ; 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 27 public class DownloadFilesAction extends DispatchAction{ 28 29 30 public ActionForward unspecified(ActionMapping mapping, ActionForm jf, HttpServletRequest request, 31 HttpServletResponse response) throws Exception { 32 33 return mapping.findForward(""); 34 } 35 36 public ActionForward downloadFile(ActionMapping mapping, ActionForm jf, HttpServletRequest request, 37 HttpServletResponse response) throws Exception { 38 39 String inode = request.getParameter("inode"); 40 41 42 Identifier iden = IdentifierFactory.getIdentifierByInode(InodeFactory.getInode(inode, File.class)); 43 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 out = response.getOutputStream(); 49 try { 50 FileInputStream fis = new FileInputStream (FileFactory.getRealAssetPath(assetFile)); 51 BufferedInputStream bis = new BufferedInputStream (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 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 |