En esta ocasión vamos a explicar de manera sencilla como subir una imagen a nuestro servidor y guardar la url de la misma en nuestra base de datos.
Un caso de uso puede ser, cuando tienes una tabla de productos y quieres tener una imagen por cada producto.
Supongamos que tenemos una tabla como la siguiente :
Construimos nuestro formulario
<form method="post" enctype="multipart/form-data" action="subir_imagen.php"> Codigo: <input id="txt_codigo" type="text" name="codigo"><br /> Descripcion: <input id="txt_descripcion" type="text" name="descripcion"><br /> <input id="file_url" type="file" name="foto"><br /> <input type="submit" value="Guardar"> </form>
Se verá asi
Ahora construimos nuestro codigo en PHP
Explicando un poco el código, lo que hace php es toma los valores de la variable $_FILE que es la que contiene los datos del archivo, para mas informacion en la página de PHP.Net
Primero validamos si el directorio destino tiene permisos de escritura, de ser asi, validamos que el archivo haya sido correctamente cargado a la ubicación temporal.
Luego lo movemos al directorio destino con move_uploaded_file(imagen_temporal, imagen_destino)
Comprobamos que haya sido correcto y grabamos en nuestra base de datos.
Para los que recién inician con PHP y Mysql les explico, primero abrimos la conexión $link = mysql_connect('localhost', $mi_usuario, $mi_password), seleccionamos nuestra base de datos a usar mysql_select_db.
Creamos nuestra sentencia a ejecutar y la ejecutamos con mysql_query
Si probamos tendríamos algo similar a esto:
Llenamos el formulario
Presionamos Guardar
Y nos da como resultado en la web
En nuestra base de datos se guardo el registro
El código fuente lo pueden obtener de mi repositorio Github
Gracias por el aporte
ResponderEliminargenio!!!. me ayudó muchísimo. mil gracias eh!
ResponderEliminardisculpa tengo una duda que se tiene que modificar aqui? $imagen_subida = $dir_destino . basename($_FILES['foto']['name']);
ResponderEliminarNo tenes que reemplazar nada,
Eliminar$_FILES['imagen']['name']; //este es el nombre del archivo que acabas de subir
$_FILES['imagen']['type']; //este es el tipo de archivo que acabas de subir
$_FILES['imagen']['tmp_name'];//este es donde esta almacenado el archivo que acabas de subir.
$_FILES['imagen']['size']; //este es el tamaño en bytes que tiene el archivo que acabas de subir.
$_FILES['imagen']['error']; //este almacena el codigo de error que resultaría en la subida.
//imagen es el nombre del input tipo file del formulario.
¿Y si lo que quiero es que me inserte una imagen desde una url externa?
ResponderEliminarComo podria hacer para guardarlo en una base de datos en postgresql,como seria el query??
ResponderEliminarQuisiera que me muestre la consulta en otra página, como sería
ResponderEliminarquisiera que me muestre la consulta en otra página, es decir ver lo que se grabó en la bd, en otra página.
ResponderEliminarGracias
Y si por ejemplo quiero insertar dos imagenes? Como hariamos con la url que va a quedar algo asi en base de datos: descarga.jpgimagen.jpg. Si lo quiero mostrar en el navegador.
ResponderEliminartengo en mi tabla un campo llamado figura, quiero que este se almacene la Url de la imagen que eligieron y que despues me la muestre, pero quiero ponerle imagen1 despues si sube otra imagen2 etc, Alguien Ayuda!
ResponderEliminarLo del Form en que archivo va?? en un html o en js???
ResponderEliminaren la parte de archivo_usuario que va, que no seria foto??
ResponderEliminar