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

Problemas de codificación

Estas en el tema de Problemas de codificación en el foro de Java en Foros del Web. Buenas a todos. Necesito hacer una pagina en JSP que me devuelva el contenido de un archivo swf. Para ello, tengo el siguiente código: @import ...
  #1 (permalink)  
Antiguo 16/11/2011, 03:06
 
Fecha de Ingreso: noviembre-2007
Mensajes: 81
Antigüedad: 16 años, 4 meses
Puntos: 0
Pregunta Problemas de codificación

Buenas a todos.

Necesito hacer una pagina en JSP que me devuelva el contenido de un archivo swf. Para ello, tengo el siguiente código:

Código JSP:
Ver original
  1. <%@ page import="java.io.*, java.net.*" %><%
  2. String filename = request.getParameter("fileName");
  3. String swfFilePath = "C:\\temp\\" + filename;
  4.  
  5. response.setHeader("Pragma","public");
  6. response.setHeader("Cache-Control", "no-cache, must-revalidate, private");
  7. response.setDateHeader ("Expires", 0);
  8. response.setContentType( "application/x-shockwave-flash" );
  9. response.setCharacterEncoding("UTF-8");
  10.  
  11. try {
  12.     File swf = new File(swfFilePath);
  13.     BufferedReader reader = new BufferedReader(new FileReader(swf));
  14.     String line;    
  15.     while((line = reader.readLine()) != null) {
  16.         out.println(line);
  17.     }
  18.     reader.close();
  19. } catch(Exception e){}
  20. %>

El caso es que me devuelve todo el contenido del fichero pero con problemas de codificación. Alguien sabe como podría resolverlo para que me lo devuelva con la codificación correcta ??? LLevo ya un par de dias con esto y empieza a agotarseme el tiempo...

Por si sirve de algo, cuando miro los encabezados de la página, me aparece esto:

Código Cabeceras:
Ver original
  1. Server: Apache-Coyote/1.1
  2. Pragma: public
  3. Cache-Control: no-cache, must-revalidate, private
  4. Expires: Thu, 01 Jan 1970 00:00:00 GMT
  5. Content-Type: application/x-shockwave-flash;charset=UTF-8
  6. Transfer-Encoding: chunked   <--  De donde sale ???
  7. Date: Wed, 16 Nov 2011 09:03:08 GMT

Gracias de antemano.
  #2 (permalink)  
Antiguo 16/11/2011, 03:28
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Problemas de codificación

EDITO: Perdón, había contestado para un fichero de texto, no me di cuenta que hablas de un flash.
__________________
Apuntes Java
Wiki de Programación

Última edición por chuidiang; 16/11/2011 a las 03:33
  #3 (permalink)  
Antiguo 16/11/2011, 04:50
 
Fecha de Ingreso: noviembre-2007
Mensajes: 81
Antigüedad: 16 años, 4 meses
Puntos: 0
Pregunta Respuesta: Problemas de codificación

Cambiando las dos primera lineas del try y quitando el response que edita la codificación he conseguido que el contenido de la respuesta sea correcto, es decir, si edito el swf con el notepad, me muestran el mismo contenido, pero aún así, si lo ejecuto en el navegador, sigue sin verse el flash...

Código JSP:
Ver original
  1. <%@ page import="java.io.*, java.net.*" %><%
  2.     String filename = request.getParameter("fileName");
  3.     String swfFilePath = "C:\\temp\\" + filename;
  4.      
  5.     response.setHeader("Pragma","public");
  6.     response.setHeader("Cache-Control", "no-cache, must-revalidate, private");
  7.     response.setDateHeader ("Expires", 0);
  8.     response.setContentType( "application/x-shockwave-flash" );
  9.      
  10.     try {
  11.         BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(swfFilePath), "8859_1"));
  12.         String line;    
  13.         while((line = reader.readLine()) != null) {
  14.             out.println(line);
  15.         }
  16.         reader.close();
  17.     } catch(Exception e){}
  18.     %>

No se si hay que cerrar algo o llamar a alguna función para que se muestre. De todos modos, he visto tambien que, segun las cabeceras, el archivo ocupa 7695 bytes, pero si veo las propiedades del swf, me pone que ocupa 7637 bytes... No se que puede estar pasando...

Alguna idea ??? Yo ya he agotado todas las que tenía.
  #4 (permalink)  
Antiguo 16/11/2011, 06:58
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Problemas de codificación

Quizás tengas que poner el trozo de html correspondiente a la página donde va el swf http://snippets.dzone.com/posts/show/2093 y no enviar el fichero sin más.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 17/11/2011, 05:58
 
Fecha de Ingreso: noviembre-2007
Mensajes: 81
Antigüedad: 16 años, 4 meses
Puntos: 0
De acuerdo Respuesta: Problemas de codificación

Arreglado, solo tenía que cambiar el try por este:
Código JSP:
Ver original
  1. try {
  2.     InputStream in = new FileInputStream(swfFilePath);
  3.     byte[] data = new byte[in.available()];
  4.     in.read(data);
  5.  
  6.     response.setContentLength(data.length);
  7.     javax.servlet.ServletOutputStream servletoutputstream = response.getOutputStream();
  8.  
  9.     servletoutputstream.write(data);
  10.     servletoutputstream.flush();
  11.     servletoutputstream.close();
  12. } catch (IOException e) {}

Etiquetas: jsp, string
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 20:53.