1 5 package org.jresearch.gossip.actions.message.attachment; 6 7 import javax.servlet.ServletOutputStream ; 8 import javax.servlet.http.HttpServletRequest ; 9 import javax.servlet.http.HttpServletResponse ; 10 import javax.servlet.http.HttpSession ; 11 12 import org.apache.struts.action.Action; 13 import org.apache.struts.action.ActionForm; 14 import org.apache.struts.action.ActionForward; 15 import org.apache.struts.action.ActionMapping; 16 import org.jresearch.gossip.IConst; 17 import org.jresearch.gossip.beans.forum.attachment.FileData; 18 import org.jresearch.gossip.beans.user.User; 19 import org.jresearch.gossip.configuration.Configurator; 20 import org.jresearch.gossip.dao.ForumDAO; 21 import org.jresearch.gossip.forms.ProcessAttachForm; 22 23 27 public class DowloadAttachmentAction extends Action { 28 29 37 public ActionForward execute(ActionMapping mapping, ActionForm form, 38 HttpServletRequest request, HttpServletResponse response) 39 throws Exception { 40 HttpSession session = request.getSession(); 41 User user = (User) session.getAttribute(IConst.SESSION.USER_KEY); 42 ForumDAO dao = ForumDAO.getInstance(); 43 ProcessAttachForm paForm = (ProcessAttachForm) form; 44 if (Configurator.getInstance().getBoolean( 45 IConst.CONFIG.ENABLE_FILE_UPLOAD)) { 46 FileData fData = dao 47 .getAttachment(Integer.parseInt(paForm.getId())); 48 String mime = fData.getInfo().getContentType(); 49 response.setContentType(mime); 50 if (!(IConst.JSP.JPG_CONTENT_TYPE.equals(mime) 51 || IConst.JSP.GIF_CONTENT_TYPE.equals(mime) || IConst.JSP.PNG_CONTENT_TYPE 52 .equals(mime))) { 53 response.setHeader("Content-disposition", 54 "attachment;filename=\"" + fData.getInfo().getName() 55 + "\""); 56 } 57 response.addHeader("Content-description", fData.getInfo() 58 .getDescription()); 59 ServletOutputStream outStream = response.getOutputStream(); 60 outStream.write(fData.getData()); 61 outStream.flush(); 62 outStream.close(); 63 } else { 64 return (mapping.findForward(IConst.TOKEN.DENIED)); 65 } 66 67 return null; 68 } 69 } | Popular Tags |