Daniel Prado Rodríguez Visita: Sacarse el carnet de conducir por libre DGT
  Viernes, 13 de Diciembre de 2024 Inicio | Contactar
Añadir a favoritos | Imprimir 
  Volver al resto de artículos JAVA


Programación JAVA - Para servir desde un servlet una imagen de acceso restringido

» Programacion » Java » Para servir desde un servlet una imagen de acceso restringido
Lunes, 12 de Diciembre de 2005. Escrito por admin


Este código nos servirá como ejemplo para lanzar otros tipos de archivos que no sean imágenes que también tengan algún tipo de acceso restringido.

 

En primer lugar deberemos de sustituir la url de la imagen por la del servlet que nos la devuelve, es decir las etiquetas img quedarían de la siguiente manera:

<img src="direcciónServlet\nombreServlet"/>

Como vemos se sustituirá el recurso de la imagen por el servlet que nos lo devuelve.

 

El código es el siguiente:

package utils.imagenes;

 

import javax.servlet.http.HttpServlet;

import javax.servlet.*;

import javax.servlet.http.*;

import java.util.*;

import java.io.*;

import javax.mail.*;

import javax.mail.internet.*;

import java.text.*;

import com.ti.comunes.*;

import utils.constantes.*;

 

public class Obtener_Imagen extends HttpServlet {

       public void init() throws ServletException {

}

 

public void doPost(

       javax.servlet.http.HttpServletRequest request,

       javax.servlet.http.HttpServletResponse response)

       throws javax.servlet.ServletException, java.io.IOException {

}

 

public void doGet(

       javax.servlet.http.HttpServletRequest request,

       javax.servlet.http.HttpServletResponse response)

       throws javax.servlet.ServletException, java.io.IOException {

                                       

       String myID = (String) request.getParameter("ID");

       try {

           //primeramente, comprobamos que se ha pasado el ID, si no existe no se devuelve foto                          

           if (myID == null)

               throw new Exception("[utils.imagenes.ObtenerImagen]Parametro tiene un valor desconocido");

           else

           {

               try{  

                   //leemos el fichero del ftp,usando el metodo que traduce el path

                   File f = new File(utils.constantes.ConstantesRID.FILE_PATH+myID+".jpg");

                   RandomAccessFile raf = new RandomAccessFile(utils.constantes.ConstantesRID.FILE_PATH+myID+".jpg", "r");

                   FileInputStream fis = new FileInputStream(f);

                   FileReader fr = new FileReader(f);

                   int i;

                   byte b[] = new byte[(int) f.length()];

                   raf.read(b);

                                       

                   //cabecera

                   response.setHeader("Content-Type","img/jpeg");

                   response.setIntHeader("Content-Length", (int) f.length());

                  //response.setHeader("Accept-Ranges", "bytes");

                                                                  

                  //lo escribimos

                  OutputStream out = response.getOutputStream();

                  out.write(b); 

                  out.close();                     

                  raf.close();

                  fis.close();

                  fr.close();

                                   

                  }

               catch (FileNotFoundException fe)

                  {

                     throw new Exception();

                  }

           }

       }

       catch(Exception e) {

            System.out.println(e.getMessage());

            //salida a pagina de error y devolver foto por defecto

                         

           //leemos el fichero del ftp por defecto

           File f = new File(Constants.FotoPathDefault); //Const..Default à Es un _String con la url

           RandomAccessFile raf = new RandomAccessFile(Constants.FotoPathDefault, "r");

           FileInputStream fis = new FileInputStream(f);

           FileReader fr = new FileReader(f);

           int i;

           byte b[] = new byte[(int) f.length()];

           raf.read(b);

                                 

           //cabecera

           response.setHeader("Content-Type","img/jpeg");

           response.setIntHeader("Content-Length", (int) f.length());

           //response.setHeader("Accept-Ranges", "bytes");

                                                           

           //lo escribimos

           OutputStream out = response.getOutputStream();

           out.write(b); 

           out.close(); 

           raf.close();

           fis.close();

           fr.close();

     } //catch

} //doGet          

}

 

comentarios (0)
  Anterior artículo JAVA Siguiente artículo JAVA 

COMENTARIOS EN FACEBOOK SOBRE: Artículo JAVA (J2EE) - Para servir desde un servlet una imagen de acceso restringido
 
Mapa web |  Página principal  | Blog de Recetas | Recetas de Pescado | | Política de privacidad | Política de cookies
www.daniel.prado.name - Página Personal - © Copyright