Cita:
Iniciado por opzina2 En el atributo name de cada input tipo file puedes poner un array.
<input type="file" name="imagen[]" >
Recuperda poner bien el encoding del formulario.
Luego recorres el vector imagen normalmente.
Veamos compañero.
te muestro que me paso hasta donde hice como vos comentas.
aca esta el campo donde paso fotos, tiene una funcion javascript que anida un input file al seleccionar subir otra foto
<input type="file" name="archivos[]" style="width: 215px" /><br />
</div></dd>
<dt><a href="#" onClick="addCampo()"><span style="font-size:small">Subir otra imagen</span></a></dt>
luego mustro como tomo los datos, hago el bucle, traigo los datos, agrego variables al array vector, y tambien inserto en una carpeta las fotos, tengo una tabla aparte para las fotos y cada foto tiene su idproducto
<?php
//analizar form, agregar producto
if(isset($_POST['act'])){
$nombre__prod = mysql_real_escape_string($_POST['N__prod']);
$precio__prod = mysql_real_escape_string($_POST['P__prod']);
$detalles__prod = mysql_real_escape_string($_POST['D__prod']);
$id_ct = mysql_real_escape_string($_POST['select1']);
$idsubcat = $_POST['select2'];
$img =$_FILES["archivos"];
if (isset ($img)) {
//de se asi, para procesar los archivos subidos al servidor solo debemos recorrerlo
//obtenemos la cantidad de elementos que tiene el arreglo archivos
$tot = count($_FILES["archivos"]["name"]);
for ($i = 0; $i < $tot; $i++){
$name = $_FILES["archivos"]["name"][0];
$name1 = $_FILES["archivos"]["name"][1];
$name2 = $_FILES["archivos"]["name"][2];
$name3 = $_FILES["archivos"]["name"][3];
move_uploaded_file($_FILES['archivos']['tmp_name'][0],"../img_/$name");
move_uploaded_file($_FILES['archivos']['tmp_name'][1],"../img_/$name1");
move_uploaded_file($_FILES['archivos']['tmp_name'][2],"../img_/$name2");
move_uploaded_file($_FILES['archivos']['tmp_name'][3],"../img_/$name3");
}
}
//vemos si el nombre de producto es identico a otro producto del sistema
$sql = mysql_query("SELECT id FROM productos WHERE nombreProd = '$nombre__prod' LIMIT 1 ");
$P__coincidencia = mysql_num_rows($sql);
if($P__coincidencia > 0){
echo 'Disculpe, trato de crear un producto que ya existe ,<a href="inventorio.php">click aca</a>';
exit();
}
$sql = mysql_query( "INSERT INTO productos(nombreProd,precio,detalles,dia_added,id_ ct,subcategoria,foto1,foto2,foto3,foto4)
VALUES('$nombre__prod','$precio__prod','$detalles_ _prod',now(),$id_ct,'$idsubcat')") or die(mysql_error());
$pid = mysql_insert_id();
if(isset($name)){
$sql = mysql_query( "INSERT INTO fotoxproducto(ruta_foto,idproducto)
VALUES('$name','$pid')") or die(mysql_error());}
if(isset($name1)){
$sql_1 = mysql_query( "INSERT INTO fotoxproducto(ruta_foto,idproducto)
VALUES('$name1','$pid')") or die(mysql_error());}
if(isset($name2)){
$sql_2 = mysql_query( "INSERT INTO fotoxproducto(ruta_foto,idproducto)
VALUES('$name2','$pid')") or die(mysql_error());}
if(isset($name3)){
$sql_3 = mysql_query( "INSERT INTO fotoxproducto(ruta_foto,idproducto)
VALUES('$name3','$pid')") or die(mysql_error());}
//$pid = mysql_insert_id();
//imagen
//$nw__img = "$pid.jpg";
//move_uploaded_file($_FILES['fileField']['tmp_name'],"../eCommIMG/$nw__img");
header("location: inventorio.php");
exit();
}
?>
hasta aca va funcionando como quiero.
Luego en editar pasa lo siguiente
Esta primera parte es lo que muestro en el form editar, traigo las fotos de los productos con sus id, nombre de este id que es la ruta a la foto y un id del producto asociado.
esto va bien, por que lo utilizo para eliminar con un unlink la foto de la carpeta, y eliminar el id de la tabla fotosxproducto para eliminar tambien de la base de datos.
<?php
$sql1 = mysql_query("SELECT * FROM fotoxproducto where idproducto='$elid' ");
$numrows = mysql_num_rows($sql1);
while($row_foto = mysql_fetch_array($sql1)){
$idfotito = $row_foto["idf"];
$namefoto = $row_foto["ruta_foto"];
?>
<td>
<label>
<img src="../img_/<?php echo $namefoto; ?>" width="40" heigth="52" border="1"/>
<a href="inventorio_edit.php?idfoto=<?php echo $idfotito ?>&rutafoto=<?php echo $namefoto; ?>&pid=<?php echo $elid; ?>&act=eliminar">Eliminar</a>
</label>
</td>
y el codigo que utilizo es este:
<?php
if(isset($_GET['idfoto'])){
//elimino iten desde sistema y desde imagen
// elimino desde bd
$act =$_GET['act'];
$idfoto =$_GET['idfoto'];
$ruta_foto =$_GET['rutafoto'];
$img =$_FILES["upload"];
if ($act == "eliminar")
{
$sql = mysql_query("DELETE FROM fotoxproducto where idf='$idfoto' ")or die(mysql_error());
$ruta_p_foto = ("../img_/$ruta_foto");
if(file_exists($ruta_p_foto)){
unlink($ruta_p_foto);}
}else{
//$sql = mysql_query("UPDATE fotoxproducto SET ruta_foto='' where idf='$idfoto'")or die(mysql_error());
//quitar imagen de servidor
}
}
?>
en la edicion es donde no puedo hacer la logica.
un abrazo y agradezco toda ayuda.