Foros del Web » Programando para Internet » PHP »

Recuperar valor de campo de archivo

Estas en el tema de Recuperar valor de campo de archivo en el foro de PHP en Foros del Web. Tengo un formulario con listas dependientes que para recargarse se redirige a una segunda pagina y segun el valor que devuelve se recargan las listas, ...
  #1 (permalink)  
Antiguo 24/02/2007, 04:24
 
Fecha de Ingreso: octubre-2005
Mensajes: 151
Antigüedad: 19 años
Puntos: 1
Recuperar valor de campo de archivo

Tengo un formulario con listas dependientes que para recargarse se redirige a una segunda pagina y segun el valor que devuelve se recargan las listas, tambien le paso los valores de los campos de texto via POST para no perder el valor que ha introducido el usuario, hasta aqui todo bien.
El asunto es que no se como puedo recuperar los valores que se han introducido en los campos de archivo.
Parte de formulario>>>>>>>
Cita:
<td width="350"><div align="left">
<input name="logotipo" type="file" id="logotipo" value="<?php echo $_POST['logotipo']?>">
</div></td>
<td width="20"><img src="../irudiak/info.jpg" alt="Logotipo de la empresa en jpg, gif o png. " width="20" height="20" align="top"></td>
</tr>
<tr align="left" valign="top">
<td width="100" nowrap class="texto"><div align="left">Img1:</div></td>
<td width="350"><div align="left">
<input name="img1" type="file" id="img1" value="<?php echo $_POST[ 'img1']?>">
</div></td>
Javascript>>
Cita:
function redi(valor)
{
document.form1.action="selector_provincias.php";
document.form1.submit();
}
segunda pag php>>
Cita:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<?php
$empresa=$_POST['empresa'];
$direccion=$_POST['direccion'];
$provincia=$_POST['cod_provincia'];
$poblacion=$_POST['cod_poblacion'];
$telefono1=$_POST['telefono1'];
$telefono2=$_POST['telefono2'];
$fax=$_POST['fax'];
$email=$_POST['email'];
$cifnif=$_POST['cifnif'];
$web=$_POST['web'];
$persona_contacto=$_POST['persona_contacto'];
$titulo=$_POST['titulo'];
$texto=$_POST['texto'];
$logotipo=$_POST['logotipo'];
$img1=$_POST['img1'];
$img2=$_POST['img2'];
$familia=$_POST['cod_familia'];
$subfamilia=$_POST['cod_subfamilia'];
$subsubfamilia=$_POST['cod_subsubfamilia'];

/* $cod_provincia= $_GET['provincia'];
header("location:index.php?cod_provincia=$cod_prov incia"); */
?>

<body>
<form action="index.php" method="post" enctype="multipart/form-data" name="form1">
<input name="empresa" type="hidden" value="<?php echo $empresa; ?>">
<input name="direccion" type="hidden" value="<?php echo $direccion; ?>">
<input name="cod_provincia" type="hidden" value="<?php echo $provincia; ?>">
<input name="cod_poblacion" type="hidden" value="<?php echo $poblacion; ?>">
<input name="telefono1" type="hidden" value="<?php echo $telefono1; ?>">
<input name="telefono2" type="hidden" value="<?php echo $telefono2; ?>">
<input name="fax" type="hidden" value="<?php echo $fax; ?>">
<input name="email" type="hidden" value="<?php echo $email; ?>">
<input name="cifnif" type="hidden" value="<?php echo $cifnif; ?>">
<input name="web" type="hidden" value="<?php echo $web; ?>">
<input name="persona_contacto" type="hidden" value="<?php echo $persona_contacto; ?>">
<input name="titulo" type="hidden" value="<?php echo $titulo; ?>">
<input name="texto" type="hidden" value="<?php echo $texto; ?>">
<input name="logotipo" type="hidden" value="<?php echo $logotipo; ?>">
<input name="img1" type="hidden" value="<?php echo $img1; ?>">
<input name="img2" type="hidden" value="<?php echo $img2; ?>">
<input name="cod_familia" type="hidden" value="<?php echo $familia; ?>">
<input name="cod_subfamilia" type="hidden" value="<?php echo $subfamilia; ?>">
<input name="cod_subsubfamilia" type="hidden" value="<?php echo $subsubfamilia; ?>">

<input name="botEnviar" type="hidden" value="2222">

</form>
<script language="javascript">
document.form1.action="index.php?#anc";
document.form1.submit();
</script>
</body>
</html>
¿Alguien sabe como puedo recuperar el valor del campo de archivo?
Gracias y un saludo
  #2 (permalink)  
Antiguo 24/02/2007, 08:15
 
Fecha de Ingreso: febrero-2007
Mensajes: 28
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Recuperar valor de campo de archivo

Atiro8, por ahi no se entiende bien tu consulta, el problema principal aqui es que si tu quieres solo recuperar el NOMBRE del archivo que enviaste al server mediante el metodo post es facil.. si lo que tu quieres haer es que el archivo se mantenga en las siguientes paginas es un poco mas complicado, ya que php guarda los archivos enviados (uploaded) solo durante la session de la pagina actual... osea que cuando se termina de cargar la pagina se borran.

Para ver el nombre del archivo que has enviado, no se utiliza la variable &_POST[''] sino que en su lugar se ultila $_FILES[]

asi que para leer el nombre del archivo solo deberias leer la variable $_FILES ['logotipo']['name'].

Ahora si lo que tu deseas es mantener ese archivo en las paginas siguientes.. deber utilizar la funcion move_uploaded_file

la funcion es de la siguiente manera
Código:
bool move_uploaded_file ( string nombre_archivo, string destino )
osea que en nuestro ejemplo seria algo como...

Código:
move_uploaded_file ( $_FILES['logotipo']['tmp_name'],"lugar/donde/poner/el/archivo/" . $_FILES['logotipo']['name']);
ESpero que halla sido de ayuda... desde ya saludos!
  #3 (permalink)  
Antiguo 24/02/2007, 09:38
 
Fecha de Ingreso: octubre-2005
Mensajes: 151
Antigüedad: 19 años
Puntos: 1
Re: Recuperar valor de campo de archivo

Gracias por responder, el problema que tengo es que tengo unas listas dependientes que al cambiar el valor envia todos los valores via post a una segunda pagina que luego hace un header a la misma pagina del formulario, esto es simplemente para no perder los valores que el usuario ha rellenado.
Ahora bien, si selecciono una imagen para luego subirla al servidor y cambio el valor de una lista menu , no se como recuperar el valor de la imagen seleccionada sin tener que abrir el explorador de archivos del campo de archivo, un saludo y gracias.
  #4 (permalink)  
Antiguo 24/02/2007, 10:12
 
Fecha de Ingreso: febrero-2007
Mensajes: 28
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: Recuperar valor de campo de archivo

sinceramente no comprendo muy bien lo que deseas hacer... lo unico que puedo decirte es que las imagenes que subes, si quieres que se mantengan en la otra pagina... tienes que guardarlas en el servidor, sino php las borra.. y seteado el valor VALUE del campo input imagen no logras nada ya que no es lo mismo, osea el explorador no volvera a enviar la iamgen.. lo que tienes que hacer es subir la foto, guardarla en el servidor y en la proxima pagina mostrarla (tu sabes donde guardaste la imagen y con que nombre) manda el valor de la imagen en un in put hidden y listo
Código:
<input type="hidden" name="imagen" value="<?php echo $archivo_guardado; ?>">
en la proxima actualizacion tendras el valor de la iamgen en $_POST['imagen']

Espero ser de ayuda.. si no postea de nuevo y vemos como lo solucionamos. Saludos!
  #5 (permalink)  
Antiguo 24/02/2007, 14:34
 
Fecha de Ingreso: octubre-2005
Mensajes: 151
Antigüedad: 19 años
Puntos: 1
Re: Recuperar valor de campo de archivo

sigo con el problema, la historia es que un usuario selecciona una imagen de su disco duro para subirla al sevidor, pero si antes de darle al boton enviar datos selecciona otro valor de la lista menu, ahi es cuando pierdo el valor del campo de archivo, ya que estas listas recargan sus valores segun el valor que les envia la segunda pagina, que no sirve mas que para eso.
Con el resto de campos no tengo problema ya que los envio via POST y los vuelvo a recibir via POST y asi mantengo sus valores. Pero ¿Como puedo pasar la ruta del archivo que el usuario a seleccionado de su disco duro?S.O.S
  #6 (permalink)  
Antiguo 24/06/2007, 20:47
 
Fecha de Ingreso: junio-2007
Mensajes: 44
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: Recuperar valor de campo de archivo

Hola a to2.

Bueno yo tube el mismo problema, el problema radica, el cual lo lei en algún lado que no me acuerdo donde fue, en que los input tipo file no se les puede asiganar el valor, es decir, Value="", por politicas de seguridad en favor del ususario, para no imponer algun archivo o cosas asi, no te va a tomar en cuenta, por eso te recomiendo, si es mínima la carga de la información, como refresacar un combo, hacer el control mediante ajax, es la mejor solución que encontre, no es tan dificil si sabes bastante de javascript. Espero haber sido util :P,

Bye a to2, y que esten bien..
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 21:35.