Foros del Web » Programando para Internet » PHP »

Problema con campos "file"

Estas en el tema de Problema con campos "file" en el foro de PHP en Foros del Web. Tengo dos formularios: Código HTML: <form action= "productos/agregar.php" method= "post" enctype= "multipart/form-data" name= "fagregarprod" id= "fagregarprod" > <table width= "450" border= "0" align= "center" > ...
  #1 (permalink)  
Antiguo 11/05/2011, 21:10
 
Fecha de Ingreso: agosto-2009
Mensajes: 30
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta Problema con campos "file"

Tengo dos formularios:
Código HTML:
<form action="productos/agregar.php" method="post" enctype="multipart/form-data" name="fagregarprod" id="fagregarprod" >
<table width="450" border="0" align="center">
<tr>
<td width="193" align="right" valign="top">Referencia:</td>
<td width="197" align="left">
<input name="refprodagr" type="text" id="refprodagr" size="25" maxlength="13" />
</td>
</tr>
<tr>
<td align="right" valign="top">Nombre del Producto:</td>
<td align="left">
<input name="nomprodagr" type="text" id="nomprodagr" size="25" maxlength="7" />
</td>
</tr>
<tr>
<td height="24" align="right" valign="top">Imagen:</td>
<td align="left">
<input type="file" name="agrprod" id="agrprod" /></td>
</tr>
<tr>
<td height="46" align="right"><input type="submit" value="Enviar" /></td>
<td align="left"><input type="reset" value="Limpiar" /></td>
</tr>
</table><br />
</form> 
y el otro
Código HTML:
<form name="fmodificarprod" id="fmodificarprod" method="post" action="productos/modificar.php">
<table width="450" border="0" align="center">
<tr>
<td width="101" align="right">Referencia:</td>
<td width="189" align="left">
<select name="refprodmod">
<?php
$stid=oci_parse($conn, "SELECT * FROM PRODUCTO");
oci_execute($stid);
$norows=oci_fetch_all($stid,$results);
for ($i=0; $i<$norows; $i++)
{
echo '<option value=' . $results["REFERENCIA"][$i] . '>' . $results["REFERENCIA"][$i] . '</option>';
}
?>
</select>
</td>
</tr>
<tr>
<td align="right" valign="top">Nombre del Producto:</td>
<td align="left">
<input name="nomprodmod" type="text" id="nomprodmod" size="25" maxlength="7" />
</td>
</tr>
<tr>
<td height="24" align="right" valign="top">Imagen:</td>
<td align="left">
<input type="file" name="modprod" id="modprod" /></td>
</tr>
<tr>
 <td height="46" align="right"><input type="submit" value="Enviar" /></td>
<td align="left"><input type="reset" value="Limpiar" /></td>
</tr>
</table>
</form> 
Como pueden ver tengo dos campos "FILE" en dos form aparte (agrprod y modprod), el problema es q el primero me funciona bien pero el segundo cuando envio no me lo reconoce...
aqui dejo el modificar.php
Código PHP:
$path="../../img/"
$nombre=$_FILES['modprod']['name']; 
$tipo=explode("."$nombre);
if (
$tipo[1] != "jpg" && $tipo[1] != "jpeg" && $tipo[1] != "png" && $tipo[1] != "gif")
{
if (
is_uploaded_file($_FILES['img']['tmp_name'][$i]))

copy($_FILES['img']['tmp_name'][$i], "$path/$nombre");

oci_free_statement($stid);
$stid=oci_parse($conn"INSERT INTO PRODUCTO VALUES(...campos... '$path/$nombre')");
oci_execute($stid);
header("Location: ../admin.php?menu=productos&resultado=agregado");
exit;

tal cual tengo el de agregar pero con el nombre de "agrprod" y ese si me funciona...He intentado colocarle img[] y llamar el segundo con $_FILES['modprod']['name'][1] y nada...
GRACIAS
  #2 (permalink)  
Antiguo 11/05/2011, 22:31
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Problema con campos "file"

Cita:
$path="../../img/";
$nombre=$_FILES['modprod']['name'];
$tipo=explode(".", $nombre);
if ($tipo[1] != "jpg" && $tipo[1] != "jpeg" && $tipo[1] != "png" && $tipo[1] != "gif")
{
if (is_uploaded_file($_FILES['img']['tmp_name'][$i]))
{
copy($_FILES['img']['tmp_name'][$i], "$path/$nombre");
Bueno, debes usar el mismo indice para verificar, copiar, mover, etc. cada archivo, en el primero usas 'modprod' y en el resto 'img'. Si en el formulario tienes el nombre del campo como 'modprod', entonces la parte del [$i] sale sobrando.

Por otra parte, para verificar la extension seria mas conveniente:
$tipo = end(explode('.', $nombre));

De esta forma obtienes la extension (o al menos algo) aunque el nombre de archivo sea 'sin-punto', 'mi.foto.jpg', 'mas.puntos.antes.de.la.extension.jpg', etc.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 11/05/2011, 23:22
 
Fecha de Ingreso: noviembre-2010
Ubicación: El Salvador
Mensajes: 44
Antigüedad: 13 años, 5 meses
Puntos: 6
Respuesta: Problema con campos "file"

a ojo rápido me pude fijar que al segundo le falta el enctype="multipart/form-data".
__________________
http://blog.kiuvox.com
  #4 (permalink)  
Antiguo 12/05/2011, 08:42
 
Fecha de Ingreso: agosto-2009
Mensajes: 30
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta Respuesta: Problema con campos "file"

Cita:
Iniciado por Triby Ver Mensaje
Bueno, debes usar el mismo indice para verificar, copiar, mover, etc. cada archivo, en el primero usas 'modprod' y en el resto 'img'. Si en el formulario tienes el nombre del campo como 'modprod', entonces la parte del [$i] sale sobrando.

Por otra parte, para verificar la extension seria mas conveniente:
$tipo = end(explode('.', $nombre));

De esta forma obtienes la extension (o al menos algo) aunque el nombre de archivo sea 'sin-punto', 'mi.foto.jpg', 'mas.puntos.antes.de.la.extension.jpg', etc.
Si un error que cometi al copiarlo, pero en la pagina lo tengo con "modprod" en todos los lados...PEROO AUN ASI N FUNCIONA...ya antes habia intentado con indices [$i] y nada...

Código PHP:
$path="../../img"
$nombre=$_FILES['imgprodmod']['name'];
$tipo=explode("."$nombre);
if (
$tipo[1] != "jpg" && $tipo[1] != "jpeg" && $tipo[1] != "png" && $tipo[1] != "gif")
{
header("Location: ../admin.php?menu=productos&resultado=NO");
exit;
}
else
{
if (
is_uploaded_file($_FILES['imgprodmod']['tmp_name']))

copy($_FILES['imgprodmod']['tmp_name'], "$path/$nombre");

oci_free_statement($stid);
$stid=oci_parse($conn"INSERT INTO PRODUCTO VALUES(...valores..., '$path/$nombre')");
oci_execute($stid);

header("Location: ../admin.php?menu=productos&resultado=agregado");
exit;    
}

  #5 (permalink)  
Antiguo 12/05/2011, 12:13
 
Fecha de Ingreso: agosto-2009
Mensajes: 30
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problema con campos "file"

Cita:
Iniciado por hugotuxsv Ver Mensaje
a ojo rápido me pude fijar que al segundo le falta el enctype="multipart/form-data".
sip eso era gracias!!!!
  #6 (permalink)  
Antiguo 12/05/2011, 12:52
 
Fecha de Ingreso: noviembre-2010
Ubicación: El Salvador
Mensajes: 44
Antigüedad: 13 años, 5 meses
Puntos: 6
Respuesta: Problema con campos "file"

jeje, a todos nos ha pasado, lo bueno es que solo era eso. Saludos.
__________________
http://blog.kiuvox.com

Etiquetas: campos, file
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 14:51.