Muy buenas!!!
Estoy buscando la forma de recuperar ficheros desde LifeRay.
Estos son los dos casos con los que estoy tratando, pero al fin al cabo se traducen en uno sólo.
a) Recuperar un fichero insertado como binario en una BB.DD.
b) Crear un fichero "on the fly". Para hacer se utilizan consultas de la BB.DD.
En principio ambos casos son PDFs, pero se podría aplicar a ficheros .doc, excel, etc.
Ahora estoy tratando con el caso 'a)'.
###########
"Caso a)":
Al hacer click sobre un enlace de este tipo
<a href="#" onclick="funcion()">Enlace</a>
Se envía un formulario a un action.
Este action se encarga de recuperar un fichero de una BB.DD. Recuerdo que se ha guardado como binario.
Una vez que tenemos todos los bytes del fichero guardado en una variable de tipo "byte[]", hago uso de los setters del HttpServletResponse "res". En concreto serían:
- res.reset
- res.setHeader
- res.setContentType
- res.getOutputStream() --> uso sus metodos write(variable_byte), flush y close.
Una vez que se vuelve a cargar el portlet éste aparce lleno los caracteres que componen el fichero en cuestión, pero en modo texto. Es decir, que es como si lo abrieramos en un editor de textos, pero en vez de eso se abre dentro del portlet.
¿Alguna idea al respecto?
###########
"Caso b)":
El hecho de crear un fichero PDF "on the fly" no es ningún problema. Ahora mismo se guarda en un directorio. Pero eso no es lo que quiero. Lo que quiero es lo mismo que necesito para el caso "a)". Como para hacerlo hay que pasar el fichero generado al OutputStream, y éste da problemas como en el primer caso, nos encontraríamos con lo mismo.
###########
¿Podría alguien echarme un cable? Se lo agradecería mucho.
Un saludo y muchas gracias.
P.D: Los ficheros binarios tienen que estar en la BB.DD. Ruego que obviemos las discusiones sobre los pros y contras de usar este método.
Please sign in to flag this as inappropriate.