Question:
Date: 27-04-2017 11:09:46
(In Spanish)
Estoy diseñando un sistema de información y tengo una inquietud en una tabla.
Tengo que llenar mi tabla con un tipo de información y además a esa misma tabla subirle un archivo especifico que bien es de extensión PDF o DOC.
La idea es que me duarde el documento en la tabla más no la ruta.
Esta es mi tabla:
El siguiente es el código que tengo hasta el momento.
Controlador:
Modelo:
Vista:
Agradezco sus sugerencias Votes: 1 - Answers: 4 - Views: 38 Share on: Google Facebook Twitter LinkedIn Link
¿Cómo guardar un documento PDF o DOC en mi base de datos MySQL?[Unresolved]
Buenas tardes,Estoy diseñando un sistema de información y tengo una inquietud en una tabla.
Tengo que llenar mi tabla con un tipo de información y además a esa misma tabla subirle un archivo especifico que bien es de extensión PDF o DOC.
La idea es que me duarde el documento en la tabla más no la ruta.
Esta es mi tabla:
CREATE TABLE `cert_lib` ( `nomatinm` varchar(25) NOT NULL, `fechacert` text NOT NULL, `area` varchar(20) NOT NULL, `archivo` blob NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
El siguiente es el código que tengo hasta el momento.
Controlador:
$archivo = isset($_FILES["archivo"]) ? $_FILES["archivo"]:NULL; if ($archivo) { $extension = pathinfo($archivo["name"], PATHINFO_EXTENSION); $extension = strtolower($extension); $extension_correcta = ($extension == 'doc' or $extension == 'docx' or $extension == 'pdf'); if ($extension_correcta) { $ruta_destino_archivo = "cert_libertad/{$archivo["name"]}"; $archivo_ok = move_uploaded_file($archivo["tmp_name"], $ruta_destino_archivo); } }
Modelo:
function inscert($nomatinm, $fechacert, $archivo, $area){ $sql= "INSERT INTO cert_lib(nomatinm, fechacert, area, archivo) VALUES ('$nomatinm', '$fechacert','$area', '$archivo')"; //echo $sql; $this->cons($sql); }
Vista:
<td> <?php if (isset($archivo)): ?> <?php if (!$extension_correcta): ?> <span style="color: #f00;"> La extensión es incorrecta, el archivo debe ser doc, docx o pdf. </span> <?php elseif (!$archivo_ok): ?> <span style="color: #f00;"> Error al intentar subir el archivo. </span> <?php else: ?> <strong> El archivo ha sido subido correctamente. </strong> <br /> <?php endif ?> <?php endif; ?> <input type="file" name="archivo" /> </td>
Agradezco sus sugerencias Votes: 1 - Answers: 4 - Views: 38 Share on: Google Facebook Twitter LinkedIn Link
Answers:
-
Date: 29-04-2017 02:00:35 Hola Cesar:
Alguna vez experimenté con imágenes (que también se puede hacer con PDF, texto plano, wod, etc) a codificarlo en Base 64.
Parte del sistema binario de archivos (tienes una buena explicación con ejemplos programáticos en Wikipedia Base 64).
Personalmente, a nivel de producción, volví al sistema tradicional: carpeta, en mi caso de imágenes, y lo guardado en base de datos era la ruta. Por extensión/peso y por programación no me rentaba.
De todos modos PHP cuenta con base64_encode y su correspondiente base64_decode
Si quieres hacer una prueba antes de programar, tienes por ejemplo, Codificador base64 online Votes: 3 - Link answer -
Date: 29-04-2017 05:21:00 CESAR:
Buenos días
Sumado a lo que dice Txema, si dicha información sale, se gesta o se administra por medio de registros que tengas en TABLAS de tu BD, lo mejor es que es que utilices por ejemplo un PHPExcel o un FPDF u cualquier otros, de esta forma no debes guardar nada.
Ahora bien si lo que necesitas es exclusivamente guardar archivos, no lo dudes hazlo en carpetas, porque a la larga tu TABLA sera muy pesada y ralentizara tus procesos.
Un saludo y suerte Votes: 3 - Link answer -
Date: 08-05-2017 09:45:59 Cesar
Mes sumo a la respuesta de Antuan, no se aconseja incrustar documentos enteros u otros en las tablas de una BD debido al peso que en algun momento poseera, lo cual conllevara a ralentizar tus procesos Votes: 2 - Link answer -
Date: 11-05-2017 14:28:10 Hola César:
¿Cómo estás? Me sumo también a la sugerencia de no guardar archivos en la base de datos. Te recomiendo guardarlos en algún otro lado y guardar la ruta dentro de la base.
Si quieres ver más detalles, he escrito un artículo que puede ayudarte: http://academy.leewayweb.com/como-almacenar-archivos-en-una-base-de-datos-mysql/
Saludos! Votes: 1 - Link answer
To actively participate in the community first must authenticate, enter the system.Sign In