| |||
![]() Hola a todos como puedo guaardar una imagen en una base datos mysql, priemero quiero saber el tipo de dato que debo dejar en la tabla para guardar la imagen, despues el codigo de como la guardo, ademas que cuando la liste me muestre genere un link, que diga, ver foto y me lleve ese vinculo a ver la imagen, agradezco la atencion prestada. |
| ||||
Respuesta: Guardar una imagen :P Picky ... Echale una mirada a este tutorial: http://www.forosdelweb.com/f18/tutor...inario-127775/ A menos que solo quieras guardar la ruta, que es aun mas facil. |
| |||
Respuesta: Guardar una imagen Ok muy bien me guarda una imagen en la bd, pero despues de ello, no me deja agregar mas: quiero tambien que me deje solo almecenar imagenes con formato jpeg y en un determinado tamaño.. gracias.. adjunto los archivos php.. formulario.php <HTML> <HEAD> <TITLE>Binario a BD</TITLE> </HEAD> <BODY> <?php if (isset($_GET['proceso'])){ echo $_GET['proceso']."<br>"; } ?> <FORM enctype="multipart/form-data" method="post" action="insertar.php"> Archivo: <INPUT type="file" name="archivo" size="30"> <INPUT type="submit" name="submit" value="Subir archivo"> </FORM> </BODY> </HTML> insertar.php <?php //Primero, arranca el bloque PHP y checkea si el archivo tiene nombre. Si no fue asi, te remite de nuevo al formulario de inserción: // No se comprueba aqui si se ha subido correctamente. if (empty($_FILES['archivo']['name'])){ header("location: formulario.php?proceso=falta_indicar_fichero"); //o como se llame el formulario .. exit; } //establece una conexión con la base de datos. $conexion = mysql_connect("localhost","root","") or die("No se pudo realizar la conexion con el servidor."); mysql_select_db("metrologia",$conexion) or die("No se puede seleccionar BD"); // tu_bd es el nombre de la Base de datos .. por siaca. // archivo temporal (ruta y nombre). $binario_nombre_temporal=$_FILES['archivo']['tmp_name'] ; // leer del archvio temporal .. el binario subido. // "rb" para Windows .. Linux parece q con "r" sobra ... $binario_contenido = addslashes(fread(fopen($binario_nombre_temporal, "rb"), filesize($binario_nombre_temporal))); // Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo. $binario_nombre=$_FILES['archivo']['name']; $binario_peso=$_FILES['archivo']['size']; $binario_tipo=$_FILES['archivo']['type']; //insertamos los datos en la BD. $consulta_insertar = "INSERT INTO fotos (id_foto, archivo_binario, archivo_nombre, archivo_peso, archivo_tipo) VALUES ('', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo')"; mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos."); header("location: listar_imagenes.php"); // si ha ido todo bien exit; ?> ver.php <?php if(isset($_GET['id'])) { // you may have to modify login information for your database server: $conexion=mysql_connect("localhost","root","") or die ("no se ha podido conectar a la BD"); mysql_select_db("metrologia") or die ("no se ha podido seleccionar la BD"); $sql = "SELECT archivo_nombre,archivo_binario,archivo_tipo,archiv o_peso FROM fotos WHERE id_foto='".$_GET['id_foto']."'"; $consulta = mysql_query($sql,$conexion); $datos = mysql_result($consulta,0,"archivo_binario"); $tipo = mysql_result($consulta,0,"archivo_tipo"); $nombre = mysql_result($consulta,0,"archivo_nombre"); $peso = mysql_result($consulta,0,"archivo_peso"); header("Content-type: $tipo"); header("Content-length: $peso"); header("Content-Disposition: inline; filename=$nombre"); echo $datos; } ?> listar_imagenes.php <?php mysql_connect("localhost","root","") or die ("no se ha podido conectar a la BD"); mysql_select_db("metrologia") or die ("no se ha podido seleccionar la BD"); $sql = "SELECT id_foto,archivo_nombre,archivo_tipo,archivo_peso FROM fotos"; $consulta = mysql_query($sql) or die ("No se pudo ejecutar la consulta"); While ($registro=mysql_fetch_assoc($consulta)){ echo "<img src=\"ver.php?id=".$registro['id_foto']."\">"; echo "<br> Nombre archivo: ".$registro['archivo_nombre']; echo "<br> Tipo archivo (MIME formato): ".$registro['archivo_tipo']; echo "<br> Peso: ".$registro['archivo_peso']." bytes.<br><br>"; } ?> |
| ||||
Respuesta: Guardar una imagen Cita: Cuando subes un archivo, accedes a los datos de ese archivo por medio del array superglobal $_FILES[].quiero tambien que me deje solo almecenar imagenes con formato jpeg y en un determinado tamaño Para saber el tipo: $_FILES['archivo']['type'] //Esto devuelve el MIME type del archivo, en caso de un archivo jpeg puede ser: image/jpeg o image/pjpeg. Y para saber el tamaño en bytes: $_FILES['archivo']['size'] Ahora solo es cuestion de hacer unos IFs. http://www.php.net/manual/en/feature...ost-method.php |
| ||||
Respuesta: Guardar una imagen hola yo tengo un script php msql para hacer un fotolog Y lo comparto con todos los foreros!!! Tengo además un pqueño inconveniente, y es que no puedo instalarlo por problemas de permisos en mi servidor. le establezco permisos chomd 777, es decir permitir lectura ejecucion y escritura y me sigue dando el mismo error de permisos a la hora de la instalacion. Quizas alguien lo baje y lo pueda instalar. No tiene casi nada de programación esta basado en Fotolog.net y el diseño es pesimo pero bueno se puede mejorar. Agradeceria que me indiquen como hacer para solucionar lo de los permisos y les paso el link del sistema porque por motuivos de anti-span no me deja postearlo aca mi e-mail es [email protected] |
| |||
![]() a ver...me genera 'Error, el archivo tiene que ser .jpeg' siempre asi sea jpeg, por que con los codigos que anexe me guarda solamente un registro y despues me sale el mensaje mensaje siempre del archivo insertar.php "No se pudo insertar los datos en la base de datos" |
| |||
Respuesta: Guardar una imagen formulario.php <HTML> <HEAD> <TITLE>Binario a BD</TITLE> </HEAD> <BODY> <?php if (isset($_GET['proceso'])){ echo $_GET['proceso']."<br>"; } ?> <FORM enctype="multipart/form-data" method="post" action="insertar.php"> Archivo: <INPUT type="file" name="archivo" size="30"> <INPUT type="submit" name="submit" value="Subir archivo"> </FORM> </BODY> </HTML> insertar.php <?php //Primero, arranca el bloque PHP y checkea si el archivo tiene nombre. Si no fue asi, te remite de nuevo al formulario de inserción: // No se comprueba aqui si se ha subido correctamente. if (empty($_FILES['archivo']['name'])){ header("location: formulario.php?proceso=falta_indicar_fichero"); //o como se llame el formulario .. exit; } //establece una conexión con la base de datos. $conexion = mysql_connect("localhost","root","") or die("No se pudo realizar la conexion con el servidor."); mysql_select_db("metrologia",$conexion) or die("No se puede seleccionar BD"); // tu_bd es el nombre de la Base de datos .. por siaca. // archivo temporal (ruta y nombre). $binario_nombre_temporal=$_FILES['archivo']['tmp_name'] ; // leer del archvio temporal .. el binario subido. // "rb" para Windows .. Linux parece q con "r" sobra ... $binario_contenido = addslashes(fread(fopen($binario_nombre_temporal, "rb"), filesize($binario_nombre_temporal))); // Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo. $binario_nombre=$_FILES['archivo']['name']; $binario_peso=$_FILES['archivo']['size']; $binario_tipo=$_FILES['archivo']['type']; //insertamos los datos en la BD. $consulta_insertar = "INSERT INTO fotos (id_foto, archivo_binario, archivo_nombre, archivo_peso, archivo_tipo) VALUES ('', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo')"; mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos."); header("location: listar_imagenes.php"); // si ha ido todo bien exit; ?> ver.php <?php if(isset($_GET['id'])) { // you may have to modify login information for your database server: $conexion=mysql_connect("localhost","root","") or die ("no se ha podido conectar a la BD"); mysql_select_db("metrologia") or die ("no se ha podido seleccionar la BD"); $sql = "SELECT archivo_nombre,archivo_binario,archivo_tipo,archiv o_peso FROM fotos WHERE id_foto='".$_GET['id_foto']."'"; $consulta = mysql_query($sql,$conexion); $datos = mysql_result($consulta,0,"archivo_binario"); $tipo = mysql_result($consulta,0,"archivo_tipo"); $nombre = mysql_result($consulta,0,"archivo_nombre"); $peso = mysql_result($consulta,0,"archivo_peso"); header("Content-type: $tipo"); header("Content-length: $peso"); header("Content-Disposition: inline; filename=$nombre"); echo $datos; } ?> listar_imagenes.php <?php mysql_connect("localhost","root","") or die ("no se ha podido conectar a la BD"); mysql_select_db("metrologia") or die ("no se ha podido seleccionar la BD"); $sql = "SELECT id_foto,archivo_nombre,archivo_tipo,archivo_peso FROM fotos"; $consulta = mysql_query($sql) or die ("No se pudo ejecutar la consulta"); While ($registro=mysql_fetch_assoc($consulta)){ echo "<img src=\"ver.php?id=".$registro['id_foto']."\">"; echo "<br> Nombre archivo: ".$registro['archivo_nombre']; echo "<br> Tipo archivo (MIME formato): ".$registro['archivo_tipo']; echo "<br> Peso: ".$registro['archivo_peso']." bytes.<br><br>"; } ?> |
| |||
Respuesta: Guardar una imagen Ok Triby.. ya me guarda bien, pero imaginate que solo me guarda un solo registro no deja guardar mas me arroja el error que tengo en el echo del archivo guardar.php, que esta en la linea: mysql_query($consulta_insertar,$conexion) or die("No se pudo insertar los datos en la base de datos."); me arroja No se pudo insertar los datos en la base de datos. |
| ||||
Respuesta: Guardar una imagen |
| ||||
Respuesta: Guardar una imagen Cita: Gracias por corregirme ese error Triby ;)
Iniciado por Triby if($_FILES['archivo']['type']!="image/pjpeg" OR $_FILES['archivo']['type']!="image/jpeg") Intenta cambiar ese OR por && |
| ||||
Respuesta: Guardar una imagen Cuando tienes un campo auto increment no debes incluirlo en el insert: $consulta_insertar = "INSERT INTO fotos (id_foto, archivo_binario, archivo_nombre, archivo_peso, archivo_tipo) VALUES ('', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo')"; Solo elimina lo que esta en rojo y ya no debieras tener problema. |