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

Pasar un archivo y un input hidden al mismo tiempo

Estas en el tema de Pasar un archivo y un input hidden al mismo tiempo en el foro de Java en Foros del Web. Hola a todos: Vereis en mi aplicacion utilizo un pequeño frame con un jsp y ando un poco perdido en este tema, a ver si ...
  #1 (permalink)  
Antiguo 08/03/2007, 04:31
ajk
 
Fecha de Ingreso: abril-2006
Mensajes: 25
Antigüedad: 18 años
Puntos: 0
Pasar un archivo y un input hidden al mismo tiempo

Hola a todos:
Vereis en mi aplicacion utilizo un pequeño frame con un jsp y ando un poco perdido en este tema, a ver si algun alma caritativa me echa un cable:

Tengo este codigo:
Tengo un input hidden y lo recogo dentro del jsp con String filename=request.getParameter("filename");
El problema es q el fichero se sube correctamente pero no consigo obtener el valor del campo oculto hidden. Alguna idea?

Gracias de antemano

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
import="java.util.*"
import="org.apache.commons.fileupload.*"
import="org.apache.commons.fileupload.servlet.*"
import="org.apache.commons.fileupload.disk.*"
import="java.io.*"
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="js/archivoSubido.js"></script>
<script>
this.id3="id";
function subirArchivo(){
var i=window.top.instanciaSubidas.getIdUpload();
var n=nombreArchivo();
var archivoS=new archivoSubido(id3,i,n);
window.top.instanciaSubidas.addRow(archivoS);
}
function nombreArchivo(){
return document.getElementById('nombre_fichero').value;
}

</script>
</head>
<body>
<form action=upload.jsp method=post enctype=multipart/form-data>
<table>
<tr>
<td>Fichero</td>
<td><input size="50%" id="nombre_fichero" type=file name=fichero></td>
</tr>
<tr><td colspan=2>
<input type="Hidden" name="filename" value="This is hidden value 2">
<input type=submit value=enviar name=enviar onclick="subirArchivo();">

</td>
</tr>
</table>
</form>

<%


FileItem item=null;
try{
//Ruta donde se guardara el fichero
File destino=new File("/tmp");

ServletRequestContext src=new ServletRequestContext(request);

String filename=request.getParameter("filename");
out.println("<script>alert('Valor1: "+filename+"');</script>");

if(ServletFileUpload.isMultipartContent(src)){
DiskFileItemFactory factory = new DiskFileItemFactory((1024*1024),destino);
ServletFileUpload upload=new ServletFileUpload(factory);
List lista = upload.parseRequest(src);
File file= null;
Iterator it = lista.iterator();

while(it.hasNext()){
item=(FileItem)it.next();

if(item.isFormField()) {

}
else
{
file=new File(item.getName());

item.write(new File(destino,file.getName()));
destroy();

}

}
}
}catch(FileUploadException e){
item.delete();
System.out.println("Subida interrumida por el usuario.-2");
}
%>
  #2 (permalink)  
Antiguo 08/03/2007, 05:27
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Pasar un archivo y un input hidden al mismo tiempo

Si el form es de tipo "multipart/form-data" no puedes leer los parametros con request.getParameter(...). El objeto que usas para procesar el request (ServletFileUpload parece en tu caso) tiene que darte una forma alternativa de acceder a los parametros.

Supongo que sera uno de los valores que hay en la variable "lista".

S!
  #3 (permalink)  
Antiguo 08/03/2007, 05:48
ajk
 
Fecha de Ingreso: abril-2006
Mensajes: 25
Antigüedad: 18 años
Puntos: 0
Re: Pasar un archivo y un input hidden al mismo tiempo

He estado mirando en la lista y no acabo de saber si esta dentro, y si lo esta como sacarlo
  #4 (permalink)  
Antiguo 08/03/2007, 09:52
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Pasar un archivo y un input hidden al mismo tiempo

¿Has probado lo que pone en la documentación:

http://jakarta.apache.org/commons/fileupload/using.html

en la sección de "Processing the uploaded items"?
  #5 (permalink)  
Antiguo 09/03/2007, 03:02
ajk
 
Fecha de Ingreso: abril-2006
Mensajes: 25
Antigüedad: 18 años
Puntos: 0
Re: Pasar un archivo y un input hidden al mismo tiempo

Muchas gracias, asi lo hice y me ha tirado, la verdad q era mucho mas facil q todo lo q habia intentado hasta ahora.

Una preguntilla mas. Estoy intentando meter la ruta del archivo a subir en el campo correspondiente(el de examinar) y hacer el submit posteriormente desde javascript(xa poder realizar la subida automaticamente desde js).

Me da un error: el formulario no tiene propiedades; he intentado acceder mediante getElementById y names xo no hay manera:
(Siento daros la chapa, prometo q es lo ultimo q pregunto )

tengo este codigo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="js/archivoSubido.js"></script>
<script>
document.getElementById('nombre_fichero').value="D :\prueba.zip";
document.formulario.submit();
</script>
</head>
<body>
<form name="formulario" id="formulario" action=upload.jsp method=post enctype=multipart/form-data>
<table>
<tr>
<td>Fichero</td>
<td>
<input type="Hidden" id="vaya" name="id" value=nombreArchivo()>
<input size="50%" id="nombre_fichero" type=file name=fichero value="">
</td>
</tr>
<tr><td colspan=2>


</td>
</tr>
</table>
</form>
  #6 (permalink)  
Antiguo 09/03/2007, 03:21
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 2 meses
Puntos: 10
Re: Pasar un archivo y un input hidden al mismo tiempo

Cita:
Iniciado por ajk Ver Mensaje
Muchas gracias, asi lo hice y me ha tirado, la verdad q era mucho mas facil q todo lo q habia intentado hasta ahora.

Una preguntilla mas. Estoy intentando meter la ruta del archivo a subir en el campo correspondiente(el de examinar) y hacer el submit posteriormente desde javascript(xa poder realizar la subida automaticamente desde js).

Me da un error: el formulario no tiene propiedades; he intentado acceder mediante getElementById y names xo no hay manera:
(Siento daros la chapa, prometo q es lo ultimo q pregunto )

tengo este codigo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="js/archivoSubido.js"></script>
<script>
document.getElementById('nombre_fichero').value="D :\prueba.zip";
document.formulario.submit();
</script>
</head>
<body>
<form name="formulario" id="formulario" action=upload.jsp method=post enctype=multipart/form-data>
<table>
<tr>
<td>Fichero</td>
<td>
<input type="Hidden" id="vaya" name="id" value=nombreArchivo()>
<input size="50%" id="nombre_fichero" type=file name=fichero value="">
</td>
</tr>
<tr><td colspan=2>


</td>
</tr>
</table>
</form>

No puedes ponerle valor por javascript al campo file. No se permite por seguridad.

Estaria bueno que pudieras.

Saludos.
  #7 (permalink)  
Antiguo 09/03/2007, 04:55
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Pasar un archivo y un input hidden al mismo tiempo

Cita:
Iniciado por elAntonie Ver Mensaje
No puedes ponerle valor por javascript al campo file. No se permite por seguridad.

Estaria bueno que pudieras.

Saludos.
Yo como usuario, la verdad, prefiero que no se pueda .

S!
  #8 (permalink)  
Antiguo 09/03/2007, 05:03
ajk
 
Fecha de Ingreso: abril-2006
Mensajes: 25
Antigüedad: 18 años
Puntos: 0
Re: Pasar un archivo y un input hidden al mismo tiempo

Ya me imaginaba yo. Y vamos me parece muy logico y como usuario yo tambien prefiero q no se pueda.
Lo cierto es q lo q estoy intentanto en poder reiniciar subidas.
Tengo un formulario en un iframe xa realizar una subida. Las subidas las hace bien.
Cancelarlas, las cancelo sin problemas, pero para reiniciarlo.... eso es otra historia, intentaba simular lo q el usuario hace (meter la ruta del archivo, hacer el submit) desde javascript, xo visto lo visto no se puede.

De pausar y reanudar ya ni me lo planteo. Esto del manejo las subidas me parece un tema mu complicado
  #9 (permalink)  
Antiguo 09/03/2007, 05:22
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Pasar un archivo y un input hidden al mismo tiempo

Para el tema de una subidas mas controladas y fiables, la solución habitual es hacerlo con un applet, desde el que se controla si la cosa ha ido bien, si hay que repetir el envío... etc.

Desde JavaScript... una idea sería enviar el fichero con AJAX y asi no harías un reload ni tendrías que reiniciar tu el campo, sino simplemente ejecutar un submit otra vez.

Buscando "AJAX file upload" salen muchas cosas, aunque la mayoria con PHP, algunas cosas salen con Java si añades "Java" como criterio. Por ejemplo:
http://www.missiondata.com/blog/?p=28
  #10 (permalink)  
Antiguo 17/04/2008, 07:57
 
Fecha de Ingreso: abril-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Re: Pasar un archivo y un input hidden al mismo tiempo

Buenas gente, la verdad q estoy intentando hacer esto del upload, pero no lo logro, el problema es q no me defiendo muy bien en este campo pero estoy aprendiendo mucho, me podrian mandar q es lo que tiene el archivo upload.jsp, pq o no me doy cuenta a pesar q lo tengo en las narices o nadie lo agrega a sus ejemplos, gracias!
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 02:55.