MySQL - Insertar un archivo pdf en la base de datos

 
Vista:
Imágen de perfil de Orlando
Val: 5
Ha aumentado su posición en 29 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Insertar un archivo pdf en la base de datos

Publicado por Orlando (10 intervenciones) el 21/10/2016 01:21:48
Muchas gracias de antemano.

Como puedo insertar en una base de datos mysql un archivo pdf o un zip?
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
sin imagen de perfil

Insertar un archivo pdf en la base de datos

Publicado por DAVID (63 intervenciones) el 21/10/2016 08:30:17
Hola,
aquí tienes un enlace donde explican como manejar campos Blob en Mysql:

http://programacion.net/articulo/manejo_de_datos_blob_con_php_y_mysql_194

pero la verdad es que no te recomiendo que metas en un campo pdf's o zip. Mejor guarda la ruta del archivo y crea una carpeta en el servidor donde almacenar dichos documentos. Se suele hacer así.

Un saludo,
David
Madrid, diseño web
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 Orlando
Val: 5
Ha aumentado su posición en 29 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Insertar un archivo pdf en la base de datos

Publicado por Orlando (10 intervenciones) el 26/10/2016 03:34:44
David muchas gracias por tu ayuda.

Te cuento que no hallo convencer a un cliente para que no lo haga, pero eso es lo que quiere.

saludos!!
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

Insertar un archivo pdf en la base de datos

Publicado por juan jose (2 intervenciones) el 22/05/2021 15:36:10
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
<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.

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
<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
0
Comentar

Insertar un archivo pdf en la base de datos

Publicado por juan jose (2 intervenciones) el 22/05/2021 15:38:41
FALTO LA TABLA DE LA BD ASI SE CREA
#
# 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
sin imagen de perfil

Insertar un archivo pdf en la base de datos

Publicado por Leonardo Daniel (1 intervención) el 30/03/2022 00:52:20
Tiene unos años pero me sirvió, muy buen ejemplo. Solo cambiaría el campo BLOB por Mediumblob porque sino debe tener un tamaño menor a 64kb, pero fue muy bueno. 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

Insertar un archivo pdf en la base de datos

Publicado por santiago (1 intervención) el 05/01/2023 14:29:28
para eso tienes que utilizar JavaScript anexo código:


'use strict';

;
(function(document, window, index) {
var inputs = document.querySelectorAll('.inputfile');
Array.prototype.forEach.call(inputs, function(input) {
var label = input.nextElementSibling,
labelVal = label.innerHTML;

input.addEventListener('change', function(e) {
var fileName = '';
if (this.files && this.files.length > 1)
fileName = (this.getAttribute('data-multiple-caption') || '').replace('{count}',
this.files.length);
else
fileName = e.target.value.split('\\').pop();

if (fileName)
label.querySelector('span').innerHTML = fileName;
else
label.innerHTML = labelVal;
});
});
}(document, window, 0));
</script>
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

Insertar un archivo pdf en la base de datos

Publicado por Nicolas (1 intervención) el 26/11/2021 20:58:56
No se puede visualizar y como puedo hacer para subir varios archivos a la vez.
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