PHP - Mostrar pdf guardado en mysql con php

 
Vista:
sin imagen de perfil

Mostrar pdf guardado en mysql con php

Publicado por Giovanny (6 intervenciones) el 07/04/2016 19:48:08
Buen dia, quizá el titulo de mi tema es incorrecto, pero no supe expresarlo adecuadamente.

tengo una duda respecto al código que estoy elaborando, y me gustaría que alguien me pueda apoyar u orientar al respecto.

tengo una tabla en donde realizo una consulta a la base de datos el cual es el siguiente.

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
<?php
 
 $conn = mysql_connect("localhost","root","");
 mysql_select_db("aeh");
 
$qry = "SELECT id, nombre, nac, curp, rfc, ife, dom, cv, est, cart FROM archivos";
$res = mysql_query($qry);
if ($row = mysql_fetch_array($res)){
   echo "<table border = '1'> \n";
   echo "
   <tr>
	<td align=center>Nombre</td>
	<td align=center>Acta de Nacimiento</td>
	<td align=center>Curp</td>
	<td align=center>RFC</td>
	<td align=center>IFE</td>
	<td align=center>Comp. Domicilio</td>
	<td align=center>Curriculum</td>
	<td align=center>Comp. Estudios</td>
	<td align=center>Cartilla</td>
	</tr> \n";
   do {
      echo "
	  <tr>
	  	<td align=center >".$row["nombre"]."</td>
		<td align=center width=90 height=90> <a href='descarga.php?' ".$row["nac"]. "> ".$row["id"]." <img src='img.png' width=70 height=70></a></td>
		<td align=center width=90 height=90> <a href='descarga.php?' ".$row["curp"]."> <img src='img.png' width=70 height=70></a></td>
		<td align=center width=90 height=90> <a href='descarga.php?' ".$row["rfc"]. "> <img src='img.png' width=70 height=70></a></td>
		<td align=center width=90 height=90> <a href='descarga.php?' ".$row["ife"]. "> <img src='img.png' width=70 height=70></a></td>
		<td align=center width=90 height=90> <a href='descarga.php?' ".$row["dom"]. "> <img src='img.png' width=70 height=70></a></td>
		<td align=center width=90 height=90> <a href='descarga.php?' ".$row["cv"].  "> <img src='img.png' width=70 height=70></a></td>
		<td align=center width=90 height=90> <a href='descarga.php?' ".$row["est"]. "> <img src='img.png' width=70 height=70></a></td>
		<td align=center width=90 height=90> <a href='descarga.php?' ".$row["cart"]."> <img src='img.png' width=70 height=70></a></td>
	</tr> \n";
   } while ($row = mysql_fetch_array($res));
   echo "</table> \n";
} else {
echo "¡ No se ha encontrado ningún registro !";
}
?>


mi intención es que al darle clic a la imagen del pdf, me muestre el respectivo documento que tengo en la base de datos. ese codigo iria en el archivo de descarga.php que es el que direcciona cada imagen.

alguna orientacion, ayuda o idea de como se debe hacer?

una disculpa si mi tema esta mal redactado, o no me explique adecuadamente, pero es mi primera vez por aqui y no estoy muy familiarizado, una disculpa y gracias por su atencion.


Sin-titulo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Mostrar pdf guardado en mysql con php

Publicado por xve (6935 intervenciones) el 08/04/2016 08:25:15
Hola Giovanny, el documento pdf, esta guardado dentro de la base de datos, o es un archivo que se encuentra en una carpeta del servidor?

Los valores que pasas a la url descarga.php? que son? id's?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Mostrar pdf guardado en mysql con php

Publicado por Giovanny (6 intervenciones) el 08/04/2016 15:50:18
Hola, el pdf esta guardado dentro de la base de datos, como archivo Blob y en efecto, quiero que pasarle el valor del id a la url de descarga.php para que al hacer clic a la "imagen" mande a su respectivo documento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de siREZ
Val: 23
Ha disminuido su posición en 95 puestos en PHP (en relación al último mes)
Gráfica de PHP

Mostrar pdf guardado en mysql con php

Publicado por siREZ (203 intervenciones) el 12/04/2016 18:29:51
Hola.
que tal si al crear tu tabla en html colocas un onclic
por ejemplo:

<td onCLick="document.location='mostrar PDF.php?nombre=nombre1'">

así, al usuario hacer clic en la casilla, lo lleva a mostrar PDF.php allí recuperas la variable nombre (que en esta casilla es nombre1), haces la consulta a la base de datos y entregas el PDF.

me hice entender?
Que dudas tienes?

siREZ
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Mostrar pdf guardado en mysql con php

Publicado por Giovanny (6 intervenciones) el 12/04/2016 19:17:46
Entiendo tu idea, y es buena, pero creo que ya toma el valor del documento pero no lo abre, lo que hice fue que mostrara la ruta en la tabla y me queda asi:

img2

al momento de dar clic a acta de nacimiento de 1234 me manda al archivo de descarga.php y guarda la ruta que tiene el archivo


img3

pero no se como, o porque no lo muestra

codigo de la fila de Acta de Nacimiento

1
<td align=center width=90 height=90> <a href='descarga.php?id=".$row["nac"]."' ".$row["nac"]."> ".$row["nac"]." <img src='img.png' width=70 height=70></a></td>


Codigo de descarga
1
2
3
4
5
6
7
8
9
10
<?php
 $conn = mysql_connect("localhost","root","");
 mysql_select_db("aeh");
$datos=$_GET["id"];
$res=mysql_query("SELECT * FROM archivos WHERE id='$datos' ",$conn);
$data=mysql_fetch_array($res);
header('Content-type: application/pdf');
echo $data;
mysql_close();
?>


de antemano se que el codigo de descarga esta mal :p porque no muestra xD

Gracias por el apoyo siREZ
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Mostrar pdf guardado en mysql con php

Publicado por xve (6935 intervenciones) el 12/04/2016 21:32:19
Esa ruta, en la ruta de tu disco, pero ten en cuenta, que cuando se accede por web, la ruta tiene que ser desde la raíz de donde se encuentra tu web...

Creo que tu problema esta en que en la base de datos, has guardado la ruta de tu disco, y siempre tienes que guardar unicamente el nombre, ya que si mañana lo cambias de carpeta, tendrías que actualizar toda la base de datos... el path, para ir bien, siempre tendría que ir separado del nombre del archivo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Mostrar pdf guardado en mysql con php

Publicado por Giovanny (6 intervenciones) el 12/04/2016 21:48:16
Entonces lo mas recomendable seria crear una carpeta en el servidor y guardar ahí los documentos de cada persona?
para que asi la bd solo guarde el nombre, y las rutas, y ya consultarlas, de hecho xve es del mismo programa que quiero hacer, que seria subir documentos de personal, consultar, eliminar y editar.

pero si se pueden hacer ese tipo de acciones alojando los documentos en una carpeta del servidor?

gracias por el apoyo xve
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Mostrar pdf guardado en mysql con php

Publicado por xve (6935 intervenciones) el 13/04/2016 08:13:55
Hola Giovanny, si, si, se puede hacer la gestión de archivos sin problema...subir, consultar y eliminar...

Lo único que tienes que tener en cuenta, es que no se repitan los nombres de archivos, ya que se sobrescribirian...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Mostrar pdf guardado en mysql con php

Publicado por Giovanny (6 intervenciones) el 13/04/2016 16:06:09
Empezare a trabajar de esa manera entonces, muchas gracias por la orientación y el tiempo brindado, cualquier duda que tenga la estare posteando, gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mostrar pdf guardado en mysql con php

Publicado por anone (1 intervención) el 26/04/2016 01:24:10
manda todo tu proyecto para descargarlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mostrar pdf guardado en mysql con php

Publicado por galo (1 intervención) el 18/05/2017 04:30:15
a mi me sale igual alguien q me pueda ayudar porfavor... gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mostrar pdf guardado en mysql con php

Publicado por julio cesar (1 intervención) el 25/11/2017 23:26:49
hola buenas tardes no se si talves hayas solucionado el problema que tenias con mostrar un pdf almacenado en una base de datos de tipo blob pero si no es asi puedes hacerlo de la siguiente manera:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
	include 'conexion.php';
 	$query = "SELECT archivo, tipoarchivo FROM LIBRO WHERE idLibro=".$_GET['id']."";
 	$resul = $conexion->query($query) or die(mysql_error());
 
 	if ($row = $resul->fetch_array()) {
		$contenido = $row['archivo'];
		$tipo = $row['tipoarchivo'];
	}
 
 	header("Content-type: $tipo");
 	echo $contenido;
?>
saludos....... comenta si ya lo hiciste
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mostrar pdf guardado en mysql con php

Publicado por Rosa (1 intervención) el 02/04/2018 16:55:21
Yo lo manejo así, pero en algunos casos me manda error, no se si será el tamaño del archivo guardado en la base

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$thsentence="SELECT * FROM tabla WHERE campo=".$id." ";
$stmt = $dbconn->prepare($thsentence);
$stmt->execute();
$info = $stmt->fetchAll(PDO::FETCH_ASSOC);
 
$tamano = $info[0]['tamano'];
$tipo = $info[0]['tipo'];
$nombre = $info[0]['nombre'];
$content = $info[0]['contenido'];
 
header("Content-type: $tipo");
header("Content-length: $tamano");
header('Content-Disposition: inline; filename="'.$nombre.'"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
 
echo $content;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mostrar pdf guardado en mysql con php

Publicado por juan jose (2 intervenciones) el 22/05/2021 15:16:27
Julio cesar excelente aporte me ayudo mucho!! funciona perfecto..

Les comparto todo el codigo para guardar PDF en MYSQL y poderlos visualizar, espero ayudar a muchos con esto.

conexion.php // primero conectamos a bd

1
2
3
4
5
6
7
8
9
10
<?php
	$host = 'localhost';
	$user = "";
        $pass = "";
        $db = "";
 
$conexion = mysqli_connect($host, $user, $pass, $db);
mysqli_set_charset($conexion, "utf8");
 
?>

insertar.php // insertamos en la bd el PDF

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
<?php
include("conexion.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.
if ($conexion->connect_error) {
			die("La conexion falló: " . $conexion->connect_error);
			}
 
// 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 archivos (id, archivo_binario, archivo_nombre, archivo_peso, archivo_tipo) VALUES ('', '$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo')";
 
	 if ($conexion->query($consulta_insertar) === TRUE)
        	{
             echo'<script type="text/javascript">
            alert("Archivo cargado exitosamente!");
            header("location: listar_imagenes.php");
            </script>';
            }
 
    else {
         echo "Error al insertar pdf." . $consulta_insertar . "<br>" . $conexion->error;
          }
 
?>

formulario.php // formulario donde adjuntan el PDF

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>
<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>
 
TIENEN QUE AGREGAR UN FORMULARIO DONDE CONSULTEN EN BD EL PDF.
 
ESTE FUE EL CODIGO QUE UTILICE EN UN FORMULARIO.
 
<form class="formulario col-lg-4" action="ver.php" method="GET">
    <div class="row">
        <div class="col-lg-12">
            <h3><i class="fas fa-car"></i> VISUALIZAR IMAGEN</h3> <p><p>
        </div>
 
            <?php
                    $mysqli = new mysqli('localhost', '', '', '');
            ?>
 
        <div class="col-sm-5 col-lg-6">
            <label><h5><i class="fas fa-image"></i> Imagenes : </h5></label> <br><br>
        </div>
        <div class="col-sm-5 col-lg-6">
 
            <select class="form-control" name="id" required>
                          <option value="">Seleccione:</option>
                            <?php
                              $query = $mysqli -> query ("SELECT * FROM archivos");
                              while ($valores = mysqli_fetch_array($query)) {
 
                                echo '<option value="'.$valores[id].'">'.$valores[archivo_nombre].'</option>';
                              }
                            ?>
            </select>
 
        </div>
 
 
    </div>
 
    <div class="btn col-lg-12">
 
        <button  class="btn btn-info" type="submit" value="Enviar formulario" target="_blank"><i class="fas fa-check-circle"></i> Ver</button><p>
    </div>
</form>


ver.php // aca visualizamos el PDF

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
	include 'conexion.php';
 	$query ="SELECT archivo_nombre,archivo_binario,archivo_tipo,archivo_peso FROM archivos WHERE id='".$_GET['id']."'";
 	$resul = $conexion->query($query) or die(mysql_error());
 
 	if ($row = $resul->fetch_array()) {
		$contenido = $row['archivo_binario'];
		$tipo = $row['archivo_tipo'];
	}
 
 	header("Content-type: $tipo");
 	echo $contenido;
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Mostrar pdf guardado en mysql con php

Publicado por juan jose (2 intervenciones) el 22/05/2021 15:37:52
SE ME OLVIDO ASI SE CREA LA TABLA EN LA BD PARA EL CODIGO QUE ENVIE

#
# Estructura de tabla para la tabla `archivos`
#

1
2
3
4
5
6
7
8
CREATE TABLE archivos (
  id int(10) unsigned NOT NULL auto_increment,
  archivo_binario blob NOT NULL,
  archivo_nombre varchar(255) NOT NULL default '',
  archivo_peso varchar(15) NOT NULL default '',
  archivo_tipo varchar(25) NOT NULL default '',
  PRIMARY KEY  (id)
)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de GOMO

Mostrar pdf guardado en mysql con php

Publicado por GOMO (1 intervención) el 14/04/2023 19:32:57
Excelente.... funciona perfectamente

OJO... es necesario crear la DB tal y como dice el ejemplo:

-+-+-+-+-+-+-+-+-+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
CREATE TABLE archivos (
id int(10) unsigned NOT NULL auto_increment,
archivo_binario blob NOT NULL,
archivo_nombre varchar(255) NOT NULL default '',
archivo_peso varchar(15) NOT NULL default '',
archivo_tipo varchar(25) NOT NULL default '',
PRIMARY KEY (id)
)
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar