
Subir y mostrar imagenes mysql apache y php
Publicado por Escarabajo (2 intervenciones) el 13/06/2016 00:25:53
Buenas noches, lo primero pido disculpas si mi duda no se corresponde aqui, estoy muy agobiada ya que no consigo hacer funcionar el poder ver las imagenes.
Les comento: tengo un servidor web apache, donde tengo los ficheros de mi web, el caso es que puedo insertar imagenes y las inserta en la base de datos pero no las puedo mostrar me sale enlace error o nada. YA he buscado codigos y los he probado y nada. entonces dejare aqui mi codigo a ver si es que tengo algo mal que es lo mas probable o alguien me puede decir otro metodo para poder subir imagenes.. gracias.
Mi base de datos se llama motor, y la tabla de imagenes es:
Este es mi fichero imagen_insertar.php
Este es el fichero blob.php
Este es mi fichero mostar.php
Les comento: tengo un servidor web apache, donde tengo los ficheros de mi web, el caso es que puedo insertar imagenes y las inserta en la base de datos pero no las puedo mostrar me sale enlace error o nada. YA he buscado codigos y los he probado y nada. entonces dejare aqui mi codigo a ver si es que tengo algo mal que es lo mas probable o alguien me puede decir otro metodo para poder subir imagenes.. gracias.
Mi base de datos se llama motor, y la tabla de imagenes es:
1
2
3
4
5
6
7
8
CREATE TABLE IF NOT EXISTS `imagephp` (
`id` smallint(6) NOT NULL AUTO_INCREMENT,
`anchura` smallint(6) NOT NULL,
`altura` smallint(6) NOT NULL,
`tipo` char(15) NOT NULL,
`imagen` mediumblob NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;
Este es mi fichero imagen_insertar.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<html>
<body>
<?php
include("conex.php"); // Incluir rl archivo de conexión con la base de datos
# Conectar con MySQL
$mysqli=new mysqli("localhost","root","aguanta","motor");
if (mysqli_connect_errno()) {
die("Error al conectar: ".mysqli_connect_error());
}
// Los posible valores que puedes obtener de la imagen son:
//echo "<BR>".$_FILES["userfile"]["name"]; //nombre del archivo
//echo "<BR>".$_FILES["userfile"]["type"]; //tipo
//echo "<BR>".$_FILES["userfile"]["tmp_name"]; //nombre del archivo de la imagen temporal
//echo "<BR>".$_FILES["userfile"]["size"]; //tamaño
# Comprobar que se haya subido el fichero
if (is_uploaded_file($_FILES["userfile"]["tmp_name"]))
{
# verificar el formato de la imagen
if ($_FILES["userfile"]["type"]=="image/jpeg" || $_FILES["userfile"]["type"]=="image/pjpeg" || $_FILES["userfile"]["type"]=="image/gif" || $_FILES["userfile"]["type"]=="image/bmp" || $_FILES["userfile"]["type"]=="image/png")
{
# Coger la anchura y altura de la imagen
$info=getimagesize($_FILES["userfile"]["tmp_name"]);
//echo "<BR>".$info[0]; //anchura
//echo "<BR>".$info[1]; //altura
//echo "<BR>".$info[2]; //1-GIF, 2-JPG, 3-PNG
//echo "<BR>".$info[3]; //cadena de texto para el tag <img
# Escapa caracteres especiales
$imagenEscapes=$mysqli->real_escape_string(file_get_contents($_FILES["userfile"]["tmp_name"]));
# Agregar la imagen a la base de datos
$sql="INSERT INTO imagephp (anchura,altura,tipo,imagen) VALUES (".$info[0].",".$info[1].",'".$_FILES["userfile"]["type"]."','".$imagenEscapes."')";
$mysqli->query($sql);
# Coger el identificador con el que se ha guardado
$id=$mysqli->insert_id;
# Mostrar la imagen agregada
echo "<div class='mensaje'>Imagen agregada con el id ".$id."</div>";
}else{
echo "<div class='error'>Error: El formato de archivo tiene que ser JPG, GIF, BMP o PNG.</div>";
}
}
?>
<h2>Selecciona una imagen</h2>
<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']?>" method="POST">
<?#$_SERVER['PHP_SELF'] devuelve la ruta absoluta al script php en ejecución?>
<input name="userfile" type="file">
<input type="submit" value="Subir Imagen">
</form>
</body>
</html>
Este es el fichero blob.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
include("conex.php"); // Incluimos nuestro archivo de conexión con la base de datos
$link = mysql_connect("localhost", "root", "aguanta") or die ("ERROR AL CONECTAR");
$db_select = mysql_select_db("motor");
$sql= "SELECT imagen, tipo FROM imagephp";
$result= mysql_query($sql, $link);
$row= mysql_fetch_assoc($result);
//ahora colocar las cabeceras segun el tipo de imagen
header("Content-type: ".$row['tipo']."");
echo ($row['imagen']);
?>
Este es mi fichero mostar.php
1
2
3
4
5
6
7
8
<?php
include("conex.php"); // Incluimos nuestro archivo de conexión con la base de datos
?>
<html>
<body>
<img src="blob.php" />
</body>
</html>
Valora esta pregunta


0