package tarjetasServlet;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import m05bClasses.m05bComun;
import m05bClasses.m05bConstantes;
import m05bClasses.m05bFileLog;

public class m05bFileToResponseServlet extends HttpServlet {

  //private static final String CONTENT_TYPE = "aplication/download";
  m05bFileLog miLog = new m05bFileLog();
  m05bComun miComun = new m05bComun();
  String sNomProp = "";
  
  	  
  /**Initialize global variables*/
  public void init() throws ServletException {
  }
  /**Process the HTTP Get request*/
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //El pdf que deberá generarse al response
    String pdfdirFile = "/datos/m05b/file/";
    String pdfname = "";
    
    try {
        sNomProp=miComun.leerPropiedad("Fich.CambiosCentro");    	
        pdfname = sNomProp + request.getParameter("doc")+ ".txt";
        pdfdirFile=pdfdirFile+pdfname;
        miLog.addTraza("Usuario", "FileToResponse Servlet", "Nombre del PDF: " + pdfname, m05bConstantes.LOG_NIVEL_BAJO);
	    //response.setContentType(CONTENT_TYPE);
	    File ficheroPdf = new File( pdfdirFile);
	    miLog.addTraza("Usuario", "FileToResponse Servlet", "Directorio del PDF: " + pdfdirFile, m05bConstantes.LOG_NIVEL_BAJO);
	    Long longitud = new Long(ficheroPdf.length());
	    String sLongitud=""+ longitud;
	    int iLongitud=Integer.parseInt(sLongitud);
	    
	    response.setContentLength(iLongitud);
	    response.setHeader("Content-Disposition", "attachment;filename=" + pdfname );
	    response.setContentType("Content-Transfer-Encoding: text/plain");
	    //response.setContentType(CONTENT_TYPE);

	     
	    byte[] fileBytes = new byte[longitud.intValue()];
	//    fileBytes.length = ficheroPdf.length();
	    FileInputStream fisficheroPdf = new FileInputStream(ficheroPdf);
	    fisficheroPdf.read(fileBytes);
	    ServletOutputStream os = response.getOutputStream();
	    ((OutputStream)os).write(fileBytes);
	    ((OutputStream)os).flush();
	    ((OutputStream)os).close();
    }catch(Exception e) {
    	response.sendRedirect("m05bError.jsp");
    }
  }
  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //El pdf que deberá generarse al response
    sNomProp=miComun.leerPropiedad("Fich.CambiosCentro");    	
    String pdfdirFile = "/datos/m05b/file/";
    String pdfname = "";
    try {
        pdfname = sNomProp+ request.getParameter("doc")+".txt";
        pdfdirFile=pdfdirFile+pdfname;
        miLog.addTraza("Usuario", "FileToResponse Servlet", "Nombre del PDF-2: " + pdfdirFile, m05bConstantes.LOG_NIVEL_BAJO);
	    File ficheroPdf = new File( pdfdirFile);
	    miLog.addTraza("Usuario", "FileToResponse Servlet", "Directorio del PDF-2: " + pdfdirFile, m05bConstantes.LOG_NIVEL_BAJO);
	    Long longitud = new Long(ficheroPdf.length());
	    String sLongitud=""+ longitud;
	    int iLongitud=Integer.parseInt(sLongitud);
	    
	     response.setContentLength(iLongitud);
	     response.setHeader("Content-Disposition", "attachment; filename=" + pdfname  );
	     response.setContentType("Content-Transfer-Encoding: text/plain");
	     //response.setContentType("Content-Transfer-Encoding: binary");
	     //response.setContentType(CONTENT_TYPE);
	     //response.setContentType(CONTENT_TYPE);
	
	    //Long longitud = new Long(ficheroPdf.length());
	    byte[] fileBytes = new byte[longitud.intValue()];
	//    fileBytes.length = ficheroPdf.length();
	    FileInputStream fisficheroPdf = new FileInputStream(ficheroPdf);
	    fisficheroPdf.read(fileBytes);
	    ServletOutputStream os = response.getOutputStream();
	    ((OutputStream)os).write(fileBytes);
	    ((OutputStream)os).flush();
	    ((OutputStream)os).close();
    } catch(Exception e) {
    	response.sendRedirect("m05bError.jsp");
    }
  }
  /**Clean up resources*/
  public void destroy() {
  }
}