|    
			
				06/03/2008, 10:54
			
			
			  | 
  |   |  |  |  |  Fecha de Ingreso: abril-2007 Ubicación: Salamanca 
						Mensajes: 254
					 Antigüedad: 18 años, 6 meses Puntos: 0 |  | 
  |  obtener el tipo de un fichero  
  hola a todos!!
 Queria que me orientasen porque estoy intentando hacer una cosa y creo que me estoy complicando un poco la vida y no estoy llegando a nada. Resulta que yo tengo una pagina jsp en la que recibo una ruta de un fichero alojado en el servidor y quiero que a traves de esa pagina enseñar el contenido del fichero. hasta ahora solo lo hice para ficheros word por lo que siempre ponia el contentType como application/msword, pero resulta que ahora tambien es posible que pueda tener pdf.
 La forma en que lo hice es que a traves de la ruta recibida creaba un InputStream y luego mostraba el contenido del fichero en forma de array de bytes, pero claro ahora si recibo un word debo cambiar el contentType y no se como averiguarlo a traves de la ruta recibida. Pongo lo que tengo hecho hasta ahora, que  da error de que no se puede compilar la clase para jsp.
 
 String ruta=request.getParameter("documento");
 String[] nombre=new String[50];
 int j=0;
 try
 {
 
 if(request.getParameter("id") != null && request.getParameter("id").equals("Legislacion")){
 ruta = request.getParameter("documentoL");
 }
 InputStream in = new FileInputStream(ruta);
 
 byte[] data = new byte[in.available()];
 in.read(data);
 //intento crear un fichero auxiliar con los datos y asi saber el tipo de fichero.
 File fichero = new File("c:/prueba.txt");
 PrintWriter pw = new PrintWriter(fichero);
 pw.print(data);
 pw.close();
 FileTypeMap file;
 String contentType = file.getContentType(fichero);
 response.setContentType(contentType);
 fichero.delete();
 
 
 StringTokenizer stk = new StringTokenizer(ruta);
 
 while(stk.hasMoreTokens())
 {
 nombre[j]=stk.nextToken("/");
 j++;
 }
 
 response.setHeader("Content-Disposition","inline; filename=\""+ nombre[(j-1)] + "\"");
 response.setContentLength(data.length);
 javax.servlet.ServletOutputStream servletoutputstream = response.getOutputStream();
 
 servletoutputstream.write(data);
 servletoutputstream.flush();
 servletoutputstream.close();
 } catch (IOException e) {
 e.printStackTrace();
 }
 
 Creo que me estoy complicando un poco la vida, asi que espero que me puedan ayudar...
 
 gracias
     |