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

recoger la ruta de un fichero en un tipo text en un formulario

Estas en el tema de recoger la ruta de un fichero en un tipo text en un formulario en el foro de Java en Foros del Web. Hola a todos, quería hacer lo siguiente, que supongo sea posible... Al subir un fichero, me gustaría poder recoger la ruta de ese fichero en ...
  #1 (permalink)  
Antiguo 15/08/2007, 03:00
 
Fecha de Ingreso: marzo-2007
Mensajes: 34
Antigüedad: 17 años, 1 mes
Puntos: 1
recoger la ruta de un fichero en un tipo text en un formulario

Hola a todos,
quería hacer lo siguiente, que supongo sea posible...

Al subir un fichero, me gustaría poder recoger la ruta de ese fichero en un tipo text, es decir, hago lo siguiente, y lo que está en color, es lo que aproximadamente me gustaría hacer:

<form method="POST" enctype='multipart/form-data' action="<c:url value="/ayudas/SubidasServlet"/>">
Fichero: <input type="file" name="fichero"><br>
<!--input name="sRuta" type="text" id="sRuta" -->
<br>
<input type="submit" class="botonesform1" value="Subir fichero">
</form>


Teniendo en cuenta que fichero es un tipo file y yo luego lo quiero manejar es la ruta como un tipo text...

Muchas gracias.
  #2 (permalink)  
Antiguo 15/08/2007, 03:14
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: recoger la ruta de un fichero en un tipo text en un formulario

¿Has probado a ver si podias leer el valor del campo de tipo file desde JavaScript?

Basicamente, no es un problema de Java.

S!
  #3 (permalink)  
Antiguo 16/08/2007, 03:15
 
Fecha de Ingreso: marzo-2007
Mensajes: 34
Antigüedad: 17 años, 1 mes
Puntos: 1
Re: recoger la ruta de un fichero en un tipo text en un formulario

Vale GreenEyed, ya lo pasé por el javascript y sí que me muestra la ruta, lo que ocurre es que al pasar ese valor (que llamaré fichero) por el formulario hacia un servlet me lo coge como null, es decir:

hago lo de antes,

Fichero: <input type="file" name="fichero" id="fichero">

y lo muestro mediante el javascript,

alert(document.frmSubirFich.fichero.value);

y en el servlet lo que hago es recoger el parámetro,

String ruta=request.getParameter("fichero");

y me dice que este valor es null.

¿es que javascript me muestra todo tipo de valores, o tengo que hacer algún cast o algo en el servlet?
Más gracias
  #4 (permalink)  
Antiguo 16/08/2007, 12:59
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: recoger la ruta de un fichero en un tipo text en un formulario

¿Tu lo que quieres es el fichero o la ruta? Por que un campo de tipo file te envía el fichero, no la ruta, y además no se puede leer con un simple getParameter.

Si lo que quieres es el fichero tienes que usar alguna librería para hacer "file upload" , lo pongo asi por que lo encontraras más fácil buscandolo en ingles. Si lo que quieres es la ruta, entonces tendras que usar JavaScript para enviar ese valor a través de otro parametro, por ejemplo un parametro oculto al que se le de valor antes de enviar el form.

S!
  #5 (permalink)  
Antiguo 17/08/2007, 02:59
 
Fecha de Ingreso: marzo-2007
Mensajes: 34
Antigüedad: 17 años, 1 mes
Puntos: 1
Re: recoger la ruta de un fichero en un tipo text en un formulario

Vale, al final lo que he optado por hacer es no coger el fichero como tipo file, si no cogerle como un String (tipo text) a través del formulario, así almaceno la ruta en la que está el fichero.
Pero ahora me ha surgido otro problema:
almaceno la ruta como un string, y si quiero descargar el archivo? cómo tendría que hacerlo? con un href como el siguiente, no lo hago... cómo se prodría hacer?

<a href="<%=(fichero.getRuta())%>" target="_blank"> descargar fichero </a>

(siempre teniendo en cuenta que el archivo se encuentra en una carpeta temporal residente en el propio equipo)

Muchas gracias.
  #6 (permalink)  
Antiguo 17/08/2007, 03:56
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: recoger la ruta de un fichero en un tipo text en un formulario

No acabo de entenderlo. ¿El cliente te marca un fichero en su maquina y tu le vas a escribir un enlace para que se lo descargue desde el servidor?

S!
  #7 (permalink)  
Antiguo 17/08/2007, 04:09
 
Fecha de Ingreso: marzo-2007
Mensajes: 34
Antigüedad: 17 años, 1 mes
Puntos: 1
Re: recoger la ruta de un fichero en un tipo text en un formulario

Sí, el usuario examina y selecciona el fichero, por ejemplo:
C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\webapps\ej.jsp
y al aceptar, se guarda esa dirección como un string, de tal modo, que cuando el mismo usuario quiera descargarse ese ej.jsp, pueda hacerlo haciendo "click" sobre el nombre del archivo, por ejemplo:
ej.jsp DESCARGAR
y se descargue el fichero...
A ver, mi tutor comentó que eso se podía hacer sin ningún problema, por eso lo digo. Quizás sea una barbaridad... por eso pregunto...
Un saludo.
  #8 (permalink)  
Antiguo 17/08/2007, 05:00
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: recoger la ruta de un fichero en un tipo text en un formulario

Es que lo no acabo de entender es por que querria un usuario descargarse un fichero a traves del navegador cuando ya lo tiene en su maquina, ya que para seleccionar el fichero lo tiene que tener en local.

Ademas, a no ser que el cliente y el servidor sean exactamente la misma maquina, nada te garantiza que existira ese fichero en el servidor, ya que el path lo ha escogido el usuario en su maquina, no en el servidor.

S!
  #9 (permalink)  
Antiguo 30/08/2007, 03:59
 
Fecha de Ingreso: agosto-2007
Mensajes: 8
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: recoger la ruta de un fichero en un tipo text en un formulario

Hola a todos, me han hablado de este post y quería comentaros mi problema, que es bastante parecido al de veroman.

Lo que yo quiero es poner en una web jsp un botón "Examinar" para ver el sistema de carpetas del PC del cliente.

Tengo implementado el botón a base de un input type="file" dentro de un formulario html, pero resulta que ese botón, aunque me muestra lo que yo quiero, parece que sólo sirve para elegir un archivo existente en el PC para subirlo al servidor, y yo no quiero hacer eso.

Veréis, lo único que yo quiero hacer es seleccionar un directorio y poder coger el String resultante de toda su ruta ("C:/directorio/", por ejemplo), porque en un servlet aparte ejecuto una instrucción que genera unos archivos y los guarda en la ruta que le diga.

¿Hay alguna manera de modificar el input file para que me coja la ruta de un directorio en vez de la ruta de un archivo, o se tiene que hacer de otra manera? Si es así, ¿cómo?.

Vamos, que lo que yo quiero hacer es que cuando le dé al botón Examinar y seleccione la carpeta "C:/Archivos/pruebas/" pueda guardarme esa ruta como String para guardar ahí ciertos archivos que genero en un servlet aparte. Osea, que el cliente seleccione la carpeta de su PC donde quiere que el servidor le guarde ciertos archivos.

¿Cómo puedo hacer esto?

Venga, muchas gracias.
  #10 (permalink)  
Antiguo 30/08/2007, 05:29
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: recoger la ruta de un fichero en un tipo text en un formulario

Bueno, la idea de lo que dices es parecida a lo que explica más arriba de que sólo necesita la ruta y no el fichero, ya que directamente no se puede hacer. Es decir, un input de tipo file, a secas, no sirve ni para escoger directorios ni para enviarte sólo la ruta de un fichero del cliente.

En cuanto a seleccionar una ruta... ¿de que te sirve exactamente saber esa ruta si cuando el servlet le envie el fichero, y por razones obvias de seguridad, es el cliente el que escoje donde lo guarda y no lo escoje el servlet?

S!
  #11 (permalink)  
Antiguo 02/09/2007, 05:26
 
Fecha de Ingreso: agosto-2007
Mensajes: 8
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: recoger la ruta de un fichero en un tipo text en un formulario

Cita:
Iniciado por GreenEyed Ver Mensaje
¿de que te sirve exactamente saber esa ruta si cuando el servlet le envie el fichero, y por razones obvias de seguridad, es el cliente el que escoje donde lo guarda y no lo escoje el servlet?

S!
Hola. Te comento más detalladamente el tema:

Es que trabajo con una base de datos MySQL y tengo que dar la opción al administrador para que haga una copia de los datos de la base cuando quiera. Así que lo que hago es la sentencia mysql "SELECT * INTO OUTFILE 'ruta del fichero a guardar y nombre que va a tener' FROM 'nombre de la tabla cuyos datos quiero guardar';"

Con esto me crea los archivos .txt de todas las tablas que le diga de la BD en la ruta que el cliente quiera, pero para saber esa ruta e introducirla en la sentencia mysql que os he puesto arriba, necesito saber dónde quiere el cliente guardar los archivos.

Por eso necesito una herramienta con la que el cliente sea capaz de seleccionar un directorio (no un archivo), para coger esa cadena e insertarla como ruta en la sentencia mysql para que genere los archivos de copia de seguridad ahí.

No sé si con esto me habré explicado algo mejor. Si necesitas saber algo más, pregunta lo que quieras.

Y gracias!!
  #12 (permalink)  
Antiguo 02/09/2007, 05:47
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: recoger la ruta de un fichero en un tipo text en un formulario

Hola,

Entonces en este caso, ¿cliente y servidor son la misma maquina?

S!
  #13 (permalink)  
Antiguo 03/09/2007, 05:33
 
Fecha de Ingreso: agosto-2007
Mensajes: 8
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: recoger la ruta de un fichero en un tipo text en un formulario

Pues en mi caso en realidad sí, porque la máquina del administrador va a ser la que haga de servidor de la aplicación, pero la idea es que cuando crezca el número de usuarios y de datos, la aplicación esté alojada en una máquina independiente, desde donde accederá el administrador para hacerse las copias de seguridad de la base de datos de la manera que te comenté arriba.

No sé si lo que estoy diciendo es posible o es una burrada, pero me gustaría saber cómo hacerlo en los dos casos (cliente y servidor en la misma máquina, y en máquinas diferentes).

Gracias otra vez.
  #14 (permalink)  
Antiguo 03/09/2007, 05:47
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: recoger la ruta de un fichero en un tipo text en un formulario

El problema es... si estan en maquinas diferentes, ¿Como va a guardarle el servlet el fichero en la carpeta que le ha marcado el cliente?
  #15 (permalink)  
Antiguo 03/09/2007, 10:24
 
Fecha de Ingreso: agosto-2007
Mensajes: 8
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: recoger la ruta de un fichero en un tipo text en un formulario

Vaya... pues sí que dije una burrada al final, sí.

Bueno, entonces me interesa sólo saber hacerlo en caso de que sean la misma máquina :D
  #16 (permalink)  
Antiguo 04/09/2007, 00:18
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: recoger la ruta de un fichero en un tipo text en un formulario

¿Y enviarle el fichero/los ficheros a través del navegador para que se lo guarde el donde quiera no te serviria?

Así ademas te serviría para maquinas distintas.

Por otro lado, si vas a limitarlo a su propia maquina... entonces yo no optaria por una aplicación web, una aplicacioncilla simple de escritorio y todo sería mucho más fácil.

S!
  #17 (permalink)  
Antiguo 04/09/2007, 04:19
 
Fecha de Ingreso: agosto-2007
Mensajes: 8
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: recoger la ruta de un fichero en un tipo text en un formulario

Cita:
Iniciado por GreenEyed Ver Mensaje
¿Y enviarle el fichero/los ficheros a través del navegador para que se lo guarde el donde quiera no te serviria?

Así ademas te serviría para maquinas distintas.
Eso sería muy interesante... pero tampoco sé hacerlo. ¿Cuál sería la idea? ¿generar los archivos .txt con la sentencia de mysql en un directorio predeterminado del servidor, y luego que el cliente se los pueda descargar de ahí vía navegador, a la ruta que elija él?

¿Qué herramientas/clases java, html y demás necesito para hacer eso e incluirlo en mi aplicación jsp?
  #18 (permalink)  
Antiguo 04/09/2007, 05:38
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: recoger la ruta de un fichero en un tipo text en un formulario

Cita:
Iniciado por auty Ver Mensaje
Eso sería muy interesante... pero tampoco sé hacerlo. ¿Cuál sería la idea? ¿generar los archivos .txt con la sentencia de mysql en un directorio predeterminado del servidor, y luego que el cliente se los pueda descargar de ahí vía navegador, a la ruta que elija él?
No hace falta que lo guardes y luego que el lo busque, aunque es una opción valida, tambien puedes devolverle directamente el contenido. Y para mejorar el rendimiento y el trafico de red, le puedes devolver el fichero comprimido, asi ocupara menos y se lo descargara más rapido. Java viene con dos algoritmos de compresion ya implementados Zip y Gzip y dependiendo de si se ha descargar varios ficheros juntos o uno solo, yo emplearia uno y otro.

Tambien puedes generarlos en un directorio y que el se los descargue mas tarde cuando quiera, eso ya es como lo prefieras.


Cita:
Iniciado por auty Ver Mensaje
¿Qué herramientas/clases java, html y demás necesito para hacer eso e incluirlo en mi aplicación jsp?
Nada especial, solo tienes que generar los ficheros y a la hora de devolverselos, hacer un servlet que lea el contenido y se lo envie. Los servlets no sirven unicamente para generar HTML, tambien pueden generar otro contenido como imagenes, ficheros PDF... solo hay que devolver el contenido adecuadamente.

Ejemplos hay variados por Internet, sobretodo si buscas "como hacer un servlet que devuelva una imagen de BDD". Si cambias imagen por "fichero comprimido", es el mismo concepto.

S!
  #19 (permalink)  
Antiguo 04/09/2007, 09:56
Avatar de cris_maco  
Fecha de Ingreso: abril-2007
Ubicación: Salamanca
Mensajes: 254
Antigüedad: 17 años
Puntos: 0
Re: recoger la ruta de un fichero en un tipo text en un formulario

Este post me parece muy interesante, yo voy a decir lo que hago, porque puede que a alguno le sirva.

Yo tengo una aplicacion web con arquitectura cliente(s)-servidor. yo lo estoy ahciendo desde casa asi que el servidor y el cliente son el mismo, pero en la practica el servidor sera externo. Yo hago que los clientes puedan subir archivos al servidor y asi cualquier cliente podra consultarlos cuando quiera, para ello lo que se me ocurrio fue. Subir ficheros y guardarlos en el servidor guardando en la base de datos un string que se corresponde con la ruta hacia el fichero en el servidor. Luego estos ficheros aparecen como enlaces, con esa ruta guardada y los clientes se los descargan.
  #20 (permalink)  
Antiguo 07/11/2014, 21:52
 
Fecha de Ingreso: octubre-2014
Mensajes: 11
Antigüedad: 9 años, 6 meses
Puntos: 0
Respuesta: Re: recoger la ruta de un fichero en un tipo text en un formulario

Cita:
Iniciado por cris_maco Ver Mensaje
Este post me parece muy interesante, yo voy a decir lo que hago, porque puede que a alguno le sirva.

Yo tengo una aplicacion web con arquitectura cliente(s)-servidor. yo lo estoy ahciendo desde casa asi que el servidor y el cliente son el mismo, pero en la practica el servidor sera externo. Yo hago que los clientes puedan subir archivos al servidor y asi cualquier cliente podra consultarlos cuando quiera, para ello lo que se me ocurrio fue. Subir ficheros y guardarlos en el servidor guardando en la base de datos un string que se corresponde con la ruta hacia el fichero en el servidor. Luego estos ficheros aparecen como enlaces, con esa ruta guardada y los clientes se los descargan.
Y como lo recuperas en tu consulta para que puedas mostrarlos? yo lo hago de esta manera rst.getString("Cv") ); en mi consulta a la bd
y en el jsp lo hago a si <%= convacss.get(i).getCv() %>
pero no me muestra nada
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 19:23.