PHP - uso de $_FILES con distintos formularios

 
Vista:
sin imagen de perfil

uso de $_FILES con distintos formularios

Publicado por Rosy (68 intervenciones) el 16/08/2011 02:42:53
Hola, tengo la siguiente problematica:

Tengo un archivo PHP en el cual tengo 3 formularios. En cada formulario subo un archivo, es decir, tengo un <input type=file> en cada etiqueta <form>. ¿ Porque uso para cada archivo un formulario? por que tengo que hacer un preview de cada archivo antes de subirlo al servidor y por ahi me dieron un ejemplo que funciona muy bien pero tiene como condicion que para cada archivo debo usar un formulario distinto, de manera que esto no lo puedo cambiar.
Es algo asi:

<form name="form1" action="" method="post" enctype="multipart/form-data">
<input type="file" name="archivo" id="archivo" onchange="setpreview(1)" />
</form>

<form name="form2" action="" method="post" enctype="multipart/form-data">
<input type="file" name="archivo" id="archivo" onchange="setpreview(2)" />
</form>

<form name="form3" action="" method="post" enctype="multipart/form-data">
<input type="file" name="archivo" id="archivo" onchange="setpreview(3)" />
</form>

Como ven, el nombre de la variable que contiene el archivo se llama "archiivo" (esto tampoco lo puedo cambiar). Teniendo estas limitantes, mi pregunta es la siguiente :

¿ Como utilizo la funcion is_uploades_file para preguntar por cada archivo que subi si el nombre de la variable para todos los casos es el mismo, es decir, "archivo"

if(is_uploaded_file($_FILES['archivo']['tmp_name']))
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

uso de $_FILES con distintos formularios

Publicado por xve (6935 intervenciones) el 16/08/2011 09:41:34
Yo pondría un campo oculto en cada uno de los formularios de esta manera:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<form name="form1" action="" method="post" enctype="multipart/form-data">
 <input type="hidden" name="opc" value="1">
 <input type="file" name="archivo" id="archivo" onchange="setpreview(1)" />
</form>
 
<form name="form2" action="" method="post" enctype="multipart/form-data">
 <input type="hidden" name="opc" value="2">
 <input type="file" name="archivo" id="archivo" onchange="setpreview(2)" />
</form>
 
<form name="form3" action="" method="post" enctype="multipart/form-data">
 <input type="hidden" name="opc" value="3">
 <input type="file" name="archivo" id="archivo" onchange="setpreview(3)" />
</form>

De esta manera, haciend referencia a la variable $_POST["opc"] sabras que formulario estas utilizando.

Espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

uso de $_FILES con distintos formularios

Publicado por Rosy (68 intervenciones) el 16/08/2011 14:00:22
Que gran idea!!! ¿por que no se me ocurren esas cosas? creo que me falta manejo!!!

Te pasaste muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

otra pregunta sobre lo mismo

Publicado por rosy (68 intervenciones) el 16/08/2011 14:10:05
mmmmmm creo que me adelante con la alegria que senti.!!

De que me sirve saber el formulario si necesito preguntar si el archivo del formulario 1 se subio, lo mismo para el formulario 2 y lo mismo para el formulario 3, es decir, como puedo preguntar algo asi:


if ($_POST["opc"] == 1) {
if(is_uploaded_file($_FILES['form1.archivo']['tmp_name']))
}


if ($_POST["opc"] ==2) {
if(is_uploaded_file($_FILES['form2.archivo']['tmp_name']))
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

otra pregunta sobre lo mismo

Publicado por xve (6935 intervenciones) el 16/08/2011 18:53:40
Hola Rosy, creo que no te entiendo... que quieres saber, si se subió con anterioridad, o de que formulario (de los tres que tienes) se esta subiendo??

De la manera que lo tienes, no puedes subir las tres imágenes de golpe, ya que cada una la tienes en un formulario diferente.

Nos puedes comentar exactamente que quieres hacer??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

otra pregunta sobre lo mismo

Publicado por Rosy (68 intervenciones) el 16/08/2011 20:36:50
Primero que todo quiero agradecerte la voluntad y la paciencia por tratar de ayudarme.

Como tengo un formulario de entrada para cada archivo de imagen que quiero subir, necesito utilizar la funcion is_uploaded_file() para saber primero si subio bien el archivo, para luego usar la funcion move_uploaded_file que copia el archivo al servidor, entonces la pregunta es: si en cada formulario el nombre de la variable es la misma, es decir, "archivo" ¿qué parametro tengo que colocar en la funcion is_uploaded_file($_FILES['archivo']['tmp_name']) y en la funcion move_uploaded_file($_FILES['archivo']['tmp_name'],$fotoF) para hacer referencia al archivo de la imagen 1, al archivo de la imagen 2 y al archivo de la imagen 3.

<form name="form1" action="" method="post" enctype="multipart/form-data">
<input type="file" name="archivo" id="archivo" onchange="setpreview(1)" />
</form>

<form name="form2" action="" method="post" enctype="multipart/form-data">
<input type="file" name="archivo" id="archivo" onchange="setpreview(2)" />
</form>

<form name="form3" action="" method="post" enctype="multipart/form-data">
<input type="file" name="archivo" id="archivo" onchange="setpreview(3)" />
</form>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Creo que es asi

Publicado por Pau Company (1 intervención) el 23/05/2012 21:58:11
Así de fácil

<form name="form1" action="" method="post" enctype="multipart/form-data">
<input type="file" name="archivo1" id="archivo1" onchange="setpreview(1)" />
</form>

<form name="form2" action="" method="post" enctype="multipart/form-data">
<input type="file" name="archivo2" id="archivo2" onchange="setpreview(2)" />
</form>

<form name="form3" action="" method="post" enctype="multipart/form-data">
<input type="file" name="archivo3" id="archivo3" onchange="setpreview(3)" />
</form>

esto primero para los formularios ( que no se muy bien, por que utilizas 3 formularios en vez de solo uno). El resto del codigo es para los upload

$uploadDir = '../upload/';
$uploadFile1 = $uploadDir . $_FILES['archivo1']['name'];
move_uploaded_file($_FILES['archivo1']['tmp_name'], $uploadFile);


$uploadFile2 = $uploadDir . $_FILES['archivo1']['name'];
move_uploaded_file($_FILES['archivo2']['tmp_name'], $uploadFile);


$uploadFile3 = $uploadDir . $_FILES['archivo1']['name'];
move_uploaded_file($_FILES['archivo3']['tmp_name'], $uploadFile);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar