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>

1 respuesta

Respuesta
1
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.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas