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