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

Problemas con FileOutputStream en hosting

Estas en el tema de Problemas con FileOutputStream en hosting en el foro de Java en Foros del Web. Muy buenas, resulta que he programado una web con un framework (ZK). Mi idea es que genero un pdf y lo almaceno en una carpeta ...
  #1 (permalink)  
Antiguo 28/08/2012, 18:57
 
Fecha de Ingreso: marzo-2008
Mensajes: 11
Antigüedad: 16 años, 1 mes
Puntos: 0
Problemas con FileOutputStream en hosting

Muy buenas,

resulta que he programado una web con un framework (ZK). Mi idea es que genero un pdf y lo almaceno en una carpeta específica que cargo después desde otro lugar de la web.

En local lo almaceno en la carpeta:
C:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps/PFC/facturas/pdf/FAC.pdf

y funciona correctamente, sin embargo, he contratado un hosting con Tomcat y demás que funciona bajo Linux, y no se como guardarlo. He probado con: /facturas/pdf/FAC.pdf y ./facturas/pdf/FAC.pdf y no hace nada...

¿Como podría guardarlo?.

Código JAVA:
Ver original
  1. String FILE = "/facturas/pdf/FAC.pdf";
  2.         try {
  3.             Document document = new Document();
  4.             PdfWriter.getInstance(document, new FileOutputStream(FILE));
  5. ...

También he probado:

Código JAVA:
Ver original
  1. String FILE = "./facturas/pdf/FAC.pdf";
  2.         try {
  3.             Document document = new Document();
  4.             PdfWriter.getInstance(document, new FileOutputStream(FILE));
  5. ...

He probado poniendo las carpetas facturas y pdf con permisos 777 y nada.

Un saludo y muchas gracias.
  #2 (permalink)  
Antiguo 29/08/2012, 01:38
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Problemas con FileOutputStream en hosting

Hola:

Lo más posible, en un hosting, es que no tengas permiso de escritura en ninguno de esos dos directorios (ni en el / del primer caso que corresponde al directorio raíz del disco duro, ni en el ./ del segundo, que suele corresponder al directorio bin de ejecución de tomcat).

Echale un ojo al método getRealPath() de ServletContext http://docs.oracle.com/javaee/6/api/...etContext.html Este método te ayudará a obtener el path en el que están los ficheros de tu aplicación (páginas jsp, servlets, imágenes, etc) y trata de escribir el pdf en ese path o por debajo de él.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 29/08/2012, 05:10
 
Fecha de Ingreso: mayo-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Respuesta: Problemas con FileOutputStream en hosting

En primer lugar, muchas gracias por responder mi consulta.

He intentado probar el método que me dices pero me indica que el método getRealPath() no está definido para mi clase, ¿podría ayudarme a ponerlo en el contexto que he puesto antes?


Código JAVA:
Ver original
  1. String FILE = "/facturas/pdf/FAC.pdf";
  2.         try {
  3.             Document document = new Document();
  4.             PdfWriter.getInstance(document, new FileOutputStream(FILE));
  5. ...
  #4 (permalink)  
Antiguo 30/08/2012, 00:45
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Problemas con FileOutputStream en hosting

Hola:

El método en cuestión está en la clase ServletContext, así que necesitas extraer el ServletContext de algún sitio. Si tu clase es un Servlet (hereda de HttpServlet y está puesta como servlet en el fichero web.xml), tendrás el método getServletConfig().getServletContext().

Si sólo tienes páginas jsp, entonces en el jsp puedes escribir pageContext.getServletConfig().getServletContext() .

En el framework zk, echa un ojo a esto http://www.zkoss.org/javadoc/6.0.0/z...ui/WebApp.html tiene método getRealPath().

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: file, fileoutputstream, framework, hosting, programa, 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 05:28.