Por medio de esta entrada pretendo dar una guía para subir archivos al servidor a través de un script en php y guardar la ubicación del archivo en una base de datos de MySQL, en ningún momento pretendo decir que es la solución óptima pero si es la más coveniente a mi parecer para analizar y mejorar….eso lo dirán los comentarios que dejen.
Primero que todo tenemos que tener los permisos necesarios para subir y guardar el archivo ‘777′ (Lectura, escritura y ejecución) y acontinuación haremos lo siguiente:
1) Creamos el formulario para seleccionar el archivo:
<form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data" name="form1">
<p align="center">Archivo
<input name="archivo" type="file" id="archivo">
</p>
<p align="center">
<input name="boton" type="submit" id="boton" value="Enviar">
</p>
</form>
Es necesario definir el atributo enctype como “multipart/form-data”, esto es así por que debemos enviar un archivo y que el formulario esta apuntado “form action ” a el archivo php actual ($PHP_SELF).
2) Creamos el script en php para subir el archivo, este puede ir al inicio del código
<?php
if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name']))
{
$local = $HTTP_POST_FILES['archivo']['name'];
$remoto = $HTTP_POST_FILES['archivo']['tmp_name'];
$tipo = $HTTP_POST_FILES['archivo']['type'];
$extension = explode(".", $local);
switch($tipo)
{
case "image/jpeg":
// La variable para la BD
$ruta = "Imagenes/JPG/" . $local;
if(move_uploaded_file($remoto, $ruta))
{
$db_conexion = mysql_connect("servidor", "usuario", "contraseña");
mysql_select_db("upload");
mysql_query("INSERT INTO nom_tabla VALUES('','$local','$tipo','$ruta')")
or die (mysql_error());
mysql_close();
echo "<br><b>Imagen subida correctamente</b></br>";
}
else
echo "Error al Mover el archivo";
break;
case "image/png":
// La variable para la BD
$ruta = "Imagenes/PNG/" . $local;
if(move_uploaded_file($remoto, $ruta))
{
$db_conexion = mysql_connect("servidor", "usuario", "contraseña");
mysql_select_db("upload");
mysql_query("INSERT INTO nom_tabla VALUES('','$local','$tipo','$ruta')")
or die (mysql_error());
mysql_close();
echo "<br><b>Imagen subida correctamente</b></br>";
}
else
echo "Error al Mover el archivo";
break;
case "image/gif":
// La variable para la BD
$ruta = "Imagenes/GIF/" . $local;
if(move_uploaded_file($remoto, $ruta))
{
$db_conexion = mysql_connect("servidor", "usuario", "contraseña");
mysql_select_db("upload");
mysql_query("INSERT INTO nom_tabla VALUES('','$local','$tipo','$ruta')")
or die (mysql_error());
mysql_close();
echo "<br><b>Imagen subida correctamente</b></br>";
}
else
echo "Error al Mover el archivo";
break;
default:
echo "<br><b>El archivo debe ser imagen</b></br>";
break;
}
die();
}
?>
Si te ha gustado este post y/o te ha servido de ayuda puedes dejar un comentario, esa es una forma de agradecer y de incentivar a la gente para que siga trabajando en esta comunidad….
En este caso he utilizado una tabla con el Id_archivo, Normbre_archivo, Tipo_archivo y Ubicación, respectivamente, ha sido testeado y ha respondido bien, si quieren agregarle que busque el archivo antes de agregarlo para ver si ya existe pueden, colocarle una consulta y determinando el el número de resultados darán las opciónes necesarias…
Otra observación y es que me hizo falta definir es cuando se le da click en enviar con el formulario vacío, allí hay que definir si la variable “archivo” esta vacía, si lo necesitan, pueden dejar un comentario…
Si te ha gustado este post, puedes dejar un comentario como agradecimiento, así incentivas a que sigamos publicando temas de interés.
Comentarios recientes