package com.idega.block.media.servlet;
/**
* Title: MediaServlet
* Description: A servlet for streaming data from the blob field of the ic_file table.
* Copyright: Idega software Copyright (c) 2001
* Company: idega
* @author <a href = "mailto:eiki@idega.is">Eirdebikur Hrafnsson</a>
* @version 1.0
*
*/
import java.io.IOException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.idega.core.file.business.FileSystemConstants;
import com.idega.idegaweb.IWMainApplication;
import com.idega.io.MediaWritable;
import com.idega.io.MemoryFileBufferWriter;
import com.idega.presentation.IWContext;
import com.idega.presentation.ui.Parameter;
import com.idega.repository.data.RefactorClassRegistry;
import com.idega.servlet.IWCoreServlet;
public class MediaServlet extends IWCoreServlet{
public static final String PARAMETER_NAME = FileSystemConstants.PARAM_FILE_ID;
public static final String USES_OLD_TABLES = "IW_USES_OLD_MEDIA_TABLES";
private boolean usesOldTables = false;
private static IWMainApplication iwma;
public static boolean debug = false;
public final static String PRM_WRITABLE_CLASS = "wrcls";
public final static String PRM_SESSION_MEMORY_BUFFER = MemoryFileBufferWriter.PRM_SESSION_BUFFER;
public static Parameter getParameter(int FileId){
return new Parameter(PARAMETER_NAME,String.valueOf(FileId));
}
public void doGet( HttpServletRequest _req, HttpServletResponse _res) throws IOException{
doPost(_req,_res);
}
public void doPost( HttpServletRequest request, HttpServletResponse response) throws IOException{
if( iwma == null ) {
iwma = IWMainApplication.getIWMainApplication(getServletContext());
}
if(request.getParameter(PARAMETER_NAME)!=null || request.getParameter("image_id")!=null){
new MediaOutputWriter().doPost(request,response,iwma);
}
else if(request.getParameter(PRM_SESSION_MEMORY_BUFFER)!=null){
new MemoryFileBufferWriter().doPost(request,response);
}
else if(request.getParameter(MediaWritable.PRM_WRITABLE_CLASS)!=null){
try{
IWContext iwc = new IWContext(request, response, getServletContext());
MediaWritable mw = (MediaWritable) RefactorClassRegistry.forName(IWMainApplication.decryptClassName(request.getParameter(MediaWritable.PRM_WRITABLE_CLASS))).newInstance();
mw.init(request,iwc);
response.setContentType(mw.getMimeType());
ServletOutputStream out = response.getOutputStream();
mw.writeTo(out);
out.flush();
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
}