Programación Web y Scripting > PHP
Subir Varias Imágenes A Un Servidor
(1/1)
tuxie:
Hola a todos. tengo la siguiente página en la que debo dar de alta varias imágenes que el usuario elija. la desarrollé de la siguiente forma:
--- Código: Text --- <? if ($enviar){ if (is_uploaded_file($HTTP_POST_FILES['img']['tmp_name'])){ if((($img_type!="image/pjpeg")&&($img_type!="image/jpeg")&&($img_type!="image/gif")&&($img_type!="image/bmp"))||($img_size >= 204800)){ echo "<table width=\"269\" border=\"0\" align=\"center\" cellpadding=\"4\" cellspacing=\"4\" id=\"AutoNumber1\" style=\"border-collapse: collapse\"> <tr> <td align=\"center\"> Error! Debe revisar que el formato de la IMAGEN sea jpg, bmp o gif y que no sea más grande de 200k<br> <a href=\"reg_prop.php?cont=$cont\"> Haga click aquí para regresar</a> </td> </tr> </table> <br>"; }else{ $fechareg= date("Y-m-d"); $cliente=mysql_query("SELECT * FROM contacto WHERE secret='$cont'"); $cli=mysql_fetch_array($cliente); $pro=mysql_query("SELECT * FROM propiedad WHERE dir='$dir' and col='$col'"); $existe=mysql_fetch_array($pro); if($existe){ echo "<table width=\"269\" border=\"0\" align=\"center\" cellpadding=\"4\" cellspacing=\"4\" id=\"AutoNumber1\" style=\"border-collapse: collapse\"> <tr> <td align=\"center\"> Error! La propiedad que quiere registrar ya existe. Los datos no se pueden duplicar<br> <a href=\"reg_prop.php?cont=$cont\"> Haga click aquí para regresar</a> </td> </tr> </table> <br>"; }else{ if(($edo!=0)&&($edo1!="")){ echo "no puede llenar los dos campos de estado"; }else if(($edo==0)&&($edo1=="")){ echo "no puede dejar vacíos los 2 campos de estado"; }else if(($edo!=0)&&($edo1=="")){ //*****aqui se mueve la imagen a la carpeta fotos y se reemplaza el url en la BD $imagen=str_replace(' ','_',$cont.$img_name); $destino="fotos/".$imagen; move_uploaded_file($HTTP_POST_FILES['img']['tmp_name'], $destino); //aqui termina la operación $sql=mysql_query("INSERT INTO propiedad (id_prop, id_cont, pais, edo, ciudad, dir, col, id_condicion, id_desc, extension, tiempo_con, gravamen, comentarios, precio, fecha_ini, pago, fecha_pago, vendida) VALUES ('','$cli[id_cont]','$pais','$edo','$ciudad','$dir','$col','$condicion','$descripcion','$ext','$anios','$gravamen','$coment','$precio','$fechareg','0','0','0')"); $propiedad=mysql_query("SELECT id_prop FROM propiedad WHERE id_cont='$cli[id_cont]' AND pais='$pais' AND edo='$edo' AND ciudad='$ciudad' AND dir='$dir' AND col='$col' AND id_condicion='$condicion' AND id_desc='$descripcion' AND extension='$ext' AND tiempo_con='$anios' AND precio='$precio' AND fecha_ini='$fechareg'"); $prop=mysql_fetch_row($propiedad); $imag=mysql_query("INSERT INTO imagenes (id_img, id_prop, imagen) VALUES ('', '$prop[0]', '$imagen')"); }else if(($edo==0)&&($edo1!="")){ $edonuevo=mysql_query("SELECT * FROM estado WHERE estado='$edo1'"); $resedo1=mysql_fetch_row($edonuevo); if($resedo1){ echo "el estado que escribió ya existe en la base de datos"; }else{ $conpais=mysql_query("SELECT * FROM pais where id_pais='$pais'"); $respais=mysql_fetch_array($conpais); $altaedo=mysql_query("INSERT INTO estado (id_estado, id_pais, estado) VALUES ('','$respais[id_pais]', '$edo1' )"); $conedo=mysql_query("SELECT * FROM estado WHERE estado='$edo1'"); $redo=mysql_fetch_array($conedo); //*****aqui se mueve la imagen a la carpeta fotos y se reemplaza el url en la BD $imagen=str_replace(' ','_',$cont.$img_name); $destino="fotos/".$imagen; move_uploaded_file($HTTP_POST_FILES['img']['tmp_name'], $destino); //aqui termina la operación $sql=mysql_query("INSERT INTO propiedad (id_prop, id_cont, pais, edo, ciudad, dir, col, id_condicion, id_desc, extension, tiempo_con, gravamen, comentarios, precio, fecha_ini, pago, fecha_pago, vendida) VALUES ('', '$cli[id_cont]', '$pais', '$edo1', '$ciudad', '$dir', '$col', '$condicion', '$descripcion', '$ext', '$anios', '$gravamen', '$coment', '$precio', '$fechareg', '0', '0', '0')"); $propiedad=mysql_query("SELECT id_prop FROM propiedad WHERE id_cont='$cli[id_cont]' AND pais='$pais' AND edo='$edo' AND ciudad='$ciudad' AND dir='$dir' AND col='$col' AND id_condicion='$condicion' AND id_desc='$descripcion' AND extension='$ext' AND tiempo_con='$anios' AND precio='$precio' AND fecha_ini='$fechareg'"); $prop=mysql_fetch_row($propiedad); $imag=mysql_query("INSERT INTO imagenes (id_img, id_prop, imagen) VALUES ('', '$prop[0]', '$imagen')"); }//end else si edo1 no está repetido en la BD }//end else si edo1 no esta vacío echo "<table width=\"269\" border=\"0\" align=\"center\" cellpadding=\"4\" cellspacing=\"4\" id=\"AutoNumber1\" style=\"border-collapse: collapse\"> <tr> <td align=\"center\"> Su inmueble ha sido dado de Alta!!!<br> <a href=\"index2.php\"> Haga click aquí para continuar...</a> </td> </tr> </table> <br>"; //} //} }//end else la imagen es valida }//end if sube imagen }//end else si los datos de la propiedad no existen else{ $fechareg= date("Y-m-d"); $cliente=mysql_query("SELECT * FROM contacto WHERE secret='$cont'"); $cli=mysql_fetch_array($cliente); $pro=mysql_query("SELECT * FROM propiedad WHERE dir='$dir' and col='$col'"); $existe=mysql_fetch_array($pro); if($existe){ echo "<table width=\"269\" border=\"0\" align=\"center\" cellpadding=\"4\" cellspacing=\"4\" id=\"AutoNumber1\" style=\"border-collapse: collapse\"> <tr> <td align=\"center\"> Error! La propiedad que quiere registrar ya existe. Los datos no se pueden duplicar<br> <a href=\"reg_prop.php?cont=$cont\"> Haga click aquí para regresar</a> </td> </tr> </table> <br>"; }else{ if(($edo!=0)&&($edo1!="")){ echo "no puede llenar los dos campos de estado"; }else if(($edo==0)&&($edo1=="")){ echo "no puede dejar vacíos los 2 campos de estado"; }else if(($edo!=0)&&($edo1=="")){ $sql=mysql_query("INSERT INTO propiedad (id_prop, id_cont, pais, edo, ciudad, dir, col, id_condicion, id_desc, extension, tiempo_con, gravamen, comentarios, precio, fecha_ini, pago, fecha_pago, vendida) VALUES ('','$cli[id_cont]','$pais','$edo','$ciudad','$dir','$col','$condicion','$descripcion','$ext','$anios','$gravamen','$coment','$precio','$fechareg','0','0','0')"); $propiedad=mysql_query("SELECT id_prop FROM propiedad WHERE id_cont='$cli[id_cont]' AND pais='$pais' AND edo='$edo' AND ciudad='$ciudad' AND dir='$dir' AND col='$col' AND id_condicion='$condicion' AND id_desc='$descripcion' AND extension='$ext' AND tiempo_con='$anios' AND precio='$precio' AND fecha_ini='$fechareg'"); $prop=mysql_fetch_row($propiedad); //$imag=mysql_query("INSERT INTO imagenes (id_img, id_prop, imagen) VALUES ('', '$prop[0]', '$imagen')"); }else if(($edo==0)&&($edo1!="")){ $edonuevo=mysql_query("SELECT * FROM estado WHERE estado='$edo1'"); $resedo1=mysql_fetch_row($edonuevo); if($resedo1){ echo "el estado que escribió ya existe en la base de datos"; }else{ $conpais=mysql_query("SELECT * FROM pais where id_pais='$pais'"); $respais=mysql_fetch_array($conpais); $altaedo=mysql_query("INSERT INTO estado (id_estado, id_pais, estado) VALUES ('','$respais[id_pais]', '$edo1' )"); $conedo=mysql_query("SELECT * FROM estado WHERE estado='$edo1'"); $redo=mysql_fetch_array($conedo); $sql=mysql_query("INSERT INTO propiedad (id_prop, id_cont, pais, edo, ciudad, dir, col, id_condicion, id_desc, extension, tiempo_con, gravamen, comentarios, precio, fecha_ini, pago, fecha_pago, vendida) VALUES ('', '$cli[id_cont]', '$pais', '$edo1', '$ciudad', '$dir', '$col', '$condicion', '$descripcion', '$ext', '$anios', '$gravamen', '$coment', '$precio', '$fechareg', '0', '0', '0')"); $propiedad=mysql_query("SELECT id_prop FROM propiedad WHERE id_cont='$cli[id_cont]' AND pais='$pais' AND edo='$edo' AND ciudad='$ciudad' AND dir='$dir' AND col='$col' AND id_condicion='$condicion' AND id_desc='$descripcion' AND extension='$ext' AND tiempo_con='$anios' AND precio='$precio' AND fecha_ini='$fechareg'"); $prop=mysql_fetch_row($propiedad); //$imag=mysql_query("INSERT INTO imagenes (id_img, id_prop, imagen) VALUES ('', '$prop[0]', '$imagen')"); }//end else si edo1 no está repetido en la BD }//end else si edo1 no esta vacío echo "<table width=\"269\" border=\"0\" align=\"center\" cellpadding=\"4\" cellspacing=\"4\" id=\"AutoNumber1\" style=\"border-collapse: collapse\"> <tr> <td align=\"center\"> Su inmueble ha sido dado de Alta!!!<br> <a href=\"index2.php\"> Haga click aquí para continuar...</a> </td> </tr> </table> <br>"; //} //} }//end else la imagen es valida }//end if sube imagen }else{ ?> <table width="53%" border="0" align="center"> <tr> <td><div align="center"><strong>PASO 2. REGISTRO DE INMUEBLE </strong></div></td> </tr> </table> <form name="formpro" method="post" action="reg_prop.php?cont=<? echo $cont?>" onSubmit="return verificar()" enctype="multipart/form-data"> <table border="0" cellpadding="2" style="border-collapse: collapse" id="AutoNumber2"> <tr> <td width="145" rowspan="33" valign="top"> <img border="0" src="images/agentes.gif" width="145" height="150"></td> <td colspan="2"><b>Los datos marcados con * son obligatorios</b></td> </tr> <tr> <td valign="top" colspan="2" class="mediando"><div align="center"><span lang="es"> Descripción del </span>Inmueble</div></td> </tr> <tr> <td width="96" valign="top"><span lang="es">Condición:</span></td> <td width="228" valign="top"><select name="condicion"> <option selected value="0">Seleccione</option> <? $con=mysql_query("select * from condicion"); $co=mysql_fetch_array($con); while($co){ ?> <option value="<? echo $co[id];?>"><? echo $co[condicion];?></option> <? $co=mysql_fetch_array($con); }//while ?> </select> <span lang="es">*</span></td> </tr> <tr> <td valign="top"><span lang="es">Descripción:</span></td> <td valign="top"> <select name="descripcion"> <option selected value="0">Seleccione</option> <? $des1=mysql_query("select * from descripcion"); $des=mysql_fetch_array($des1); while($des){ ?> <option value="<? echo $des[id_desc];?>"><? echo $des[descripcion];?></option> <? $des=mysql_fetch_array($des1); }//while ?> </select> <span lang="es">*</span></td> </tr> <tr> <td valign="top">Extensión (mt2):</td> <td valign="top"><input id="ext" maxlength="9" size="25" name="ext"> <span lang="es">*</span></td> </tr> <tr> <td valign="top">Años de construcción : </td> <td valign="top"><input id="anios" maxlength="3" size="25" name="anios"> <span lang="es">*</span></td> </tr> <tr> <td valign="top">Su propiedad tiene gravamen?</td> <td valign="top"><select name="gravamen"> <option value="0" selected>no</option> <option value="1">si</option> </select></td> </tr> <tr> <td valign="top"><span lang="es">Comentarios (si su inmueble cuenta con agua, luz, gas, alberca, gimnasio, etc.):</span></td> <td valign="top"> <span lang="es"> <textarea name="coment" rows="3" cols="35"></textarea> </span></td> </tr> <tr> <td valign="top"><span lang="es">País:</span></td> <td valign="top"> <select name="pais" onChange="OnChange()"> <option value="0" selected>seleccione</option> <? $pai=mysql_query("select * from pais"); $pa=mysql_fetch_array($pai); while($pa){ ?> <option value="<? echo $pa[id_pais];?>"><? echo $pa[pais];?></option> <? $pa=mysql_fetch_array($pai); }//while ?> </select> <span lang="es">*</span></td> </tr> <tr> <td valign="top"><span lang="es">Estado/Provincia:</span></td> <td valign="top"> <font face="verdana" size="1"> <select name="edo" onChange="deshabilita()"> <option value="0" selected>Seleccione</option> </select> <span lang="es">*</span></font></td> </tr> <tr> <td valign="top">Provincia (si no se encuentra en la lista de arriba) :</td> <td valign="top"><br> <font face="verdana" size="1"> <input id="edo1" maxlength="40" size="25" name="edo1"> </font></td> </tr> <tr> <td valign="top"><span lang="es">Ciudad:</span></td> <td valign="top"> <font face="verdana" size="1"> <input id="ciudad" maxlength="40" size="25" name="ciudad"> <span lang="es">*</span></font></td> </tr> <tr> <td valign="top"><span lang="es">Dirección:</span></td> <td valign="top"><font face="verdana" size="1"> <input id="dir" maxlength="50" size="25" name="dir"> <span lang="es">*</span></font></td> </tr> <tr> <td valign="top">Colonia:</td> <td valign="top"> <font face="verdana" size="1"> <input id="col" maxlength="20" size="25" name="col"> <span lang="es">*</span> </font></td> </tr> <tr> <td valign="top">Precio:$</td> <td valign="top"><input id="precio" maxlength="15" size="25" name="precio"> <span lang="es">*</span></td> </tr> <tr> <td colspan="2" valign="top" class="mediando"><div align="center"><span lang="es">Fotos del inmueble (opcionales) </span></div></td> </tr> <tr> <td valign="top">imagen1</td> <td valign="top"><p> <input id="img" type="file" name="img" size="20"></p> </td> </tr> <tr> <td valign="top">imagen2</td> <td valign="top"><input id="img2" type="file" name="img2" size="20"></td> </tr> <tr> <td valign="top">imagen3</td> <td valign="top"><input id="img3" type="file" name="img3" size="20"></td> </tr> <tr> <td valign="top">imagen4</td> <td valign="top"><input id="img4" type="file" name="img4" size="20"></td> </tr> <tr> <td valign="top">imagen5</td> <td valign="top"><input id="img5" type="file" name="img5" size="20"></td> </tr> <tr> <td valign="top">imagen6</td> <td valign="top"><input id="img6" type="file" name="img6" size="20"></td> </tr> <tr> <td valign="top">imagen7</td> <td valign="top"><input id="img7" type="file" name="img7" size="20"></td> </tr> <tr> <td valign="top">imagen8</td> <td valign="top"><input id="img8" type="file" name="img8" size="20"></td> </tr> <tr> <td valign="top">imagen9</td> <td valign="top"><input id="img9" type="file" name="img9" size="20"></td> </tr> <tr> <td valign="top">imagen10</td> <td valign="top"><input id="img10" type="file" name="img10" size="20"></td> </tr> <tr> <td valign="top">imagen11...</td> <td valign="top"><input id="img11" type="file" name="img11" size="20"></td> </tr> <tr> <td valign="top"> </td> <td valign="top"> </td> </tr> <tr> <td valign="top"> </td> <td valign="top"> </td> </tr> <tr> <td valign="top" colspan="3"><div align="center"><span class="Estilo1">nota: las imagenes deben ser de 200k c/u como máximo</span></div></td> </tr> <td valign="top" colspan="3"> <p align="center"> <a href="#"> </a> <input name="enviar" type="submit" id="enviar" value="Enviar"> </td> </tr> </table> </form><?}//end else if enviar?> </center> </div>
Como ven, ya validé el código para que la primera imagen se guarde y lo inserté con un if por que se supone que la inserción de imágenes debe ser opcional, o sea que el usuario puede subir 3 de las 11 imágenes que deben ser, o ninguna o todas y el sistema debe guardar el registro. El problema es que necesito que me ayuden a validar las otras diez imágenes sin necesidad de escribir tantas líneas, por que si lo hago con puros if 's, creo que no voy a acabar. bueno...les agradezco mucho su atención y su ayuda. hasta luego. :hola:
Navegación
Ir a la versión completa