Cómo almacenar archivos .pdf en MySQL como BLOB de PHP?¿Cómo almacenar archivos .pdf en MySQL como BLOB usando PHP?
Respuesta
Suponiendo una estructura de tabla de un ID de número entero y una columna de datos BLOB, y asumiendo funciones de MySQL están siendo utilizados para interactuar con la base de datos, que probablemente podría hacer algo como esto:
$result = mysql_query 'INSERT INTO table (
data
) VALUES (
\'' . mysql_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf')) . '\'
);';
Una palabra de advertencia sin embargo, el almacenamiento de blobs en bases de datos generalmente no se considera la mejor idea, ya que puede causar hinchazón de la tabla y tiene una serie de otros problemas asociados. Un mejor enfoque sería mover el archivo a alguna parte del sistema de archivos donde se puede recuperar, y almacenar la ruta al archivo en la base de datos en lugar del archivo en sí.
Además, se desaconseja utilizar las llamadas a la función mysql_ *, ya que esos métodos están en desuso y realmente no están construidos con versiones de MySQL más nuevas que 4.x en mente. Debería cambiar a mysqli o PDO en su lugar.
ACTUALIZACIÓN: mysql_ * funciones son obsoleta en PHP 5.x y son eliminado por completo en PHP 7! Ahora no tiene más remedio que cambiar a una abstracción de base de datos más moderna (MySQLI, PDO). He decidido dejar la respuesta original intacta anterior por razones históricas, pero en realidad no lo uso
aquí cómo hacerlo con mysqli en el modo de procedimiento:
$result = mysqli_query ($db, 'INSERT INTO table (
data
) VALUES (
\'' . mysqli_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf'), $db) . '\'
);');
La forma ideal de hacerlo es con declaraciones preparadas de MySQLI/PDO.
//Pour inserer :
$pdf = addslashes(file_get_contents($_FILES['inputname']['tmp_name']));
$filetype = addslashes($_FILES['inputname']['type']);//pour le test
$namepdf = addslashes($_FILES['inputname']['name']);
if (substr($filetype, 0, 11) == 'application'){
$mysqli->query("insert into tablepdf(pdf_nom,pdf)value('$namepdf','$pdf')");
}
//Pour afficher :
$row = $mysqli->query("SELECT * FROM tablepdf where id=(select max(id) from tablepdf)");
foreach($row as $result){
$file=$result['pdf'];
}
header('Content-type: application/pdf');
echo file_get_contents('data:application/pdf;base64,'.base64_encode($file));
¿Puedes por favor agregar alguna explicación sobre tu código? Visita el centro de ayuda para entender cómo escribir una buena respuesta. –
- 1. ¿Cómo insertar archivos BLOB y CLOB en MySQL?
- 2. php: Almacenar imagen en blob Mysql, ¿Bueno o malo?
- 3. Cómo almacenar un documento de Word como un BLOB en mySQL con Coldfusion
- 4. ¿Almacenar texto en BLOB?
- 5. Usando el sistema de archivos en lugar de la base de datos para almacenar archivos pdf en jackrabbit
- 6. Varbinary vs Blob en MySQL
- 7. ¿Dónde almacenar cosas como imágenes de usuario usando Azure? Blob de almacenamiento?
- 8. Cómo almacenar archivos PDF de gambas en Amazon S3
- 9. MySQL - Cómo almacenar datos AES_Encrypted?
- 10. Cómo insertar/recuperar un archivo almacenado como un BLOB en MySQL db usando python
- 11. Cómo almacenar datos de manera segura en MySQL usando AES_ENCRYPT
- 12. Generando archivos PDF con PHP
- 13. usando group_concat en PHPMYADMIN mostrará el resultado como [BLOB - 3B]
- 14. ¿Cuándo se recomienda utilizar MySQL BLOB?
- 15. SQLAlchemy JSON como blob/texto
- 16. Oracle Blob como img src en la página de PHP
- 17. Cómo renderizar archivos PDF usando C#
- 18. ¿Cómo leer archivos PDF usando Java?
- 19. Convertir docx a pdf usando PHP
- 20. ¿Cómo convertir imágenes a pdf usando PHP?
- 21. MySQL: DATE_ADD devuelve BLOB
- 22. ¿Cómo convierto BLOB a VARCHAR en MySQL?
- 23. Unir varios archivos PDF en una sola página PDF - Unir posicionado usando PHP
- 24. ¿Cómo ejecutar dos consultas mysql como una en PHP/MYSQL?
- 25. Indexando archivos PDF con Symfony usando Lucene
- 26. ¿Cómo crear archivos .php usando php?
- 27. Insertar archivo en mysql Blob
- 28. Node.JS leyendo BLOB de mysql
- 29. ¿Aplana PDF en PHP?
- 30. Cómo almacenar unicode en MySQL?
Mi código PHP está abajo: $ fileSize = $ _FILES ['userfile'] ['size']; $ fileType = $ _FILES ['userfile'] ['type']; $ fp = fopen ($ tmpName, 'r'); $ content = fread ($ fp, filesize ($ tmpName)); $ content = addslashes ($ content); $ esc = mysql_real_escape_string (file_get_contents ($ fp)); $ query = "INSERTAR EN LA tabla (id, data, Dealid) VALUES (49, \". $ Esc. \ ", 0) "; – xcodemaddy
['mysqli_query()'] (http://php.net/manual/en/mysqli.query.php) que requiere una conexión db para él y como primer parámetro. Me enamoré de este Q & A de alguien que lo usa como posible duplicado. Debe actualizarse para proporcionar la sintaxis adecuada; y esto para futuros visitantes/novatos que no saben cómo funciona todo. –
['mysqli_real_escape_string()'] (http://php.net/manual/en/mysqli.real-escape-string.php) también necesita una conexión db. ¿Puedes hacerme ping una vez que hayas hecho eso Gordon? –