1 5 6 package com.raptus.owxv3.modules.filemgr; 7 8 9 import java.io.*; 10 11 import javax.servlet.ServletOutputStream ; 12 import javax.servlet.http.*; 13 14 import org.apache.struts.action.*; 15 16 import com.raptus.owxv3.*; 17 import com.raptus.owxv3.api.*; 18 19 20 60 61 62 public class FileMgrViewAction extends VModuleRoleAction 64 { 65 70 public ActionForward perform(ActionMapping mapping, 71 ActionForm form, 72 javax.servlet.http.HttpServletRequest request, 73 javax.servlet.http.HttpServletResponse response) 74 throws java.io.IOException , 75 javax.servlet.ServletException 76 { 77 78 try{ 79 80 83 String vmid=getSelectedVModule(form,request); 84 VModuleManager vmmanager=VModuleManager.getInstance(); 85 VModule vm=vmmanager.getVModule(vmid); 86 XMLConfigManager cm=XMLConfigManager.getInstance(); 87 88 String repository=cm.getPropertyByTree("virtualhost/vmodules/vmodule?name="+vm.getIdentification()+"/properties/property?name=file/property?name=repository","value"); 90 if( ! repository.endsWith(File.separator) ) repository=repository+File.separator; 91 92 95 String action=request.getParameter(FileMgrConstants.HTTPGET_PARAM_ACTION); 96 97 98 if(action.equals("session")){ 99 HttpSession session=request.getSession(); 100 response.setContentType("text/plain"); 101 PrintWriter out=response.getWriter(); 102 if(session==null){ 103 out.println("No session"); 104 } 105 else{ 106 long creationtime=session.getCreationTime(); 108 long curenttime= new java.util.Date ().getTime(); 109 int diference=(int)((curenttime-creationtime)/1000); 110 111 112 out.println(session.getMaxInactiveInterval()-diference); 113 } 114 out.close(); 115 return null; 116 117 } 118 119 120 GResFile gresfile=null; 121 GlobalResources gres=new GlobalResources(); 122 123 if(request.getParameter(FileMgrConstants.HTTPGET_PARAM_FILEID)!=null) 124 { 125 128 129 String fileid=request.getParameter(FileMgrConstants.HTTPGET_PARAM_FILEID); 130 gresfile=gres.loadFile( Integer.parseInt(fileid) ); 131 } 132 else 133 if(request.getParameter(FileMgrConstants.HTTPGET_PARAM_FILENAME)!=null) 134 { 135 String filename=request.getParameter(FileMgrConstants.HTTPGET_PARAM_FILENAME); 136 gresfile=gres.loadFile( filename ); 137 } 138 139 if(gresfile==null) 140 { 141 147 ServletOutputStream out=response.getOutputStream(); 148 out.close(); 149 } 150 151 152 153 if(action==null) 154 { 155 158 if( gresfile.getType().compareToIgnoreCase(GlobalResources.FILETYPE_PICTURE)==0 ) 159 { 160 action=FileMgrConstants.VMODULE_ACTION_DISPLAY; 161 } 162 else 163 { 164 action=FileMgrConstants.VMODULE_ACTION_DOWNLOAD; 165 } 166 } 167 168 169 170 if( action.compareToIgnoreCase(FileMgrConstants.VMODULE_ACTION_DOWNLOAD)==0 ){ 171 175 response.setContentType("application/unknown"); 176 response.setHeader("content-disposition"," attachment; filename="+gresfile.getFileName()); 177 } 178 else 179 { 180 183 setContentType(gresfile.getFileName(),response); 184 } 185 186 189 ServletOutputStream out=response.getOutputStream(); 190 FileInputStream stream=new FileInputStream( repository+gresfile.getType()+File.separator+gresfile.getFileName() ); 191 192 int bytesRead = 0; 193 byte[] buffer = new byte[8192]; 194 while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) 195 { 196 out.write(buffer, 0, bytesRead); 197 } 198 out.close(); 199 stream.close(); 200 201 202 } 203 catch(Exception e){LoggingManager.log(e.getMessage(),this);} 204 205 208 return null; 209 } 210 211 215 private void setContentType(String filename,HttpServletResponse response){ 216 if(filename.endsWith(".gif") || filename.endsWith(".GIF") ) response.setContentType("image/gif"); 217 else if(filename.endsWith(".jpg") || filename.endsWith(".JPG") ) response.setContentType("image/jpeg"); 218 else if(filename.endsWith(".png") || filename.endsWith(".PNG") ) response.setContentType("image/png"); 219 else if(filename.endsWith(".bmp") || filename.endsWith(".BMP") ) response.setContentType("image/bmp"); 220 221 222 } 223 224 225 226 227 } 228 229 | Popular Tags |