Foros del Web » Programación para mayores de 30 ;) » Java »

obtener el tipo de un fichero

Estas en el tema de obtener el tipo de un fichero en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 06/03/2008, 10:54
Avatar de cris_maco  
Fecha de Ingreso: abril-2007
Ubicación: Salamanca
Mensajes: 254
Antigüedad: 17 años
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
  #2 (permalink)  
Antiguo 06/03/2008, 11:54
 
Fecha de Ingreso: enero-2008
Mensajes: 203
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: obtener el tipo de un fichero

yo puedo saber la extension de un archivo, pero es cuando los subo al servidor, es algo asi:
http://aumakua.wordpress.com/2007/07...dor-desde-jsp/

Alli sale una parte donde te imprime el tipo de archivo, y sirve para documentos, word, pdf, zip, etc...
  #3 (permalink)  
Antiguo 06/03/2008, 13:35
Avatar de cris_maco  
Fecha de Ingreso: abril-2007
Ubicación: Salamanca
Mensajes: 254
Antigüedad: 17 años
Puntos: 0
Re: obtener el tipo de un fichero

Ya si yo cuando los subo utilizo otro tipo FormFile y por ahi tambien se el tipo, lo que pasa es que desde la jsp no puedo ahcerlo porque tambien me da errores de compilacion
  #4 (permalink)  
Antiguo 06/03/2008, 13:50
 
Fecha de Ingreso: enero-2008
Mensajes: 203
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: obtener el tipo de un fichero

no entendi porque desde la jso no puedes hacerlo, te puedes explicar mejor???.

La otra opcion, aunque no creo sea la mas apta, es que utilizes tokens, y recorras el string que tiene por valor el input text del form, y el ultimo que este precedido por un punto es el tipo, saludos...

avisame
  #5 (permalink)  
Antiguo 06/03/2008, 16:27
Avatar de cris_maco  
Fecha de Ingreso: abril-2007
Ubicación: Salamanca
Mensajes: 254
Antigüedad: 17 años
Puntos: 0
Re: obtener el tipo de un fichero

si esa ha sido mi ultima idea, la de ver la extension del fichero.
Es que mi intencion habria sido:
coger los bytes de lectura, crear un fichero con ellos y de ese fichero sacar el contentType
pero no la he podido llevar a cabo.
gracias de todas formas, lo intentare con la extension
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:21.