Como válido extensión de un archivo a subir/enviar
Con un formulario de carga de archivo quisiera que solo lo haga al envío o subida del mismo si es de extensión .jpg .bmp o cualquier otro formato definido. No se si es con ereg o con $_FILES aca les dejo mi form <form name="form1" method="POST" action="subir.php"> <input name="foto" type="file"><input name="Button1" type="submit" value="botón"> </form>
Acá te dejo el formulario que utilizo para seleccionar el archivo: <form action="subir.php" method="post" enctype="multipart/form-data"> <b class="Mensaje1">Enviar un archivo: </b> <br> <input name="userfile" type="file"> <br> <input type="submit" value="Enviar"> </form> Ahora dentro del archivo "subir.php", vamos a tomar los datos que envío por POST desde el primer archivo: <? $nombre_archivo = $HTTP_POST_FILES['userfile']['name']; //obtengo el nombre del archivo $tipo_archivo = $HTTP_POST_FILES['userfile']['type']; //obtengo el tipo del archivo $tamano_archivo = $HTTP_POST_FILES['userfile']['size']; //obtengo el tamaño del archivo //compruebo si las características del archivo son las que deseo if (!(strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "pjpeg") ) ) { echo "La extensión o el tamaño de los archivos no es correcta. <br><br> <table> <tr> <td> <li>Se permiten archivos .gif o .jpg</td> </tr> </table> "; } Una vez hecho esto, deberías mover la imagen que enviaste desde el primer formulario a una carpeta dentro de tu servidor, para poder manejarla luego dependiendo de lo que necesites. En caso de que no tengas el código para poder hacerlo, te lo dejo. //Una vez verificado que el archivo que quiero subir cumple con las características deseadas, copio el archivo en la carpeta especificada con $path_img. $path_img="./archivos/imagenes/"; if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $path_img.$_FILES['userfile']['name'])) { //Acá deberías colocar el código que te permitirá enlazar la imagen a la base de datos, para poder utilizarla luego. $sql_insert="Insert into archivos (ruta, nombre) "; $sql_insert.="values ('".$path_img."', '".$nombre_archivo."')"; $result=mysql_query($sql_insert,$conexion); } Aclaración: Las consultas $sql_insert, al igual que la variable $conexion deberías poder manejarlas sin problema, ya que previamente deberías hacer la conexión a la base de datos para poder utilizarlas. Eso lo tomo como que ya lo tienes claro. En caso de que necesites ayuda en algún punto, solo pregunta y estaré encantado de responder. Espero que mi explicación haya sido lo más clara posible.