Principales respuestas
Guardar archivo .PDF en MySQL

Pregunta
-
Estimados
Junto con saludarlos, vuelvo al forum para consultar algo especifico y aunque he revisado tutoriales aun no me queda muy claro y deseo pedir su ayuda. Mi problema es guardar un archivo .PDF en la base de datos en este caso en MySQL, para que se entienda mejor mi consulta lo explico, estoy desarrollando una aplicacion en Windows.Forms la cual por medio de un escaner digitaliza documentos y a veces son de multipaginas, en un principio se guardaria en una ruta especifica. Con el tiempo cambiaron los requerimientos y ahora se me solicito realizar guardar dicho documento en una base de datos MySQL, como presente al inicio revise un tutorial para guardar una imagen en la base de datos y luego pensar llevarla a guardar el .PDF a la base de datos. Al guardar la imagen en la base de datos en un campo longblob me sorprendi al no contener este el nombre adjunto al guardar el archivo... probe varias veces y siempre aparecia blob y al descargar el archivo de la base de datos este no tenia nombre ni formato especifico. Espero poder contar con su ayuda para este problema.
Consulta sobre un DataGridView, como puedo cargar la informacion de documentos relacionados al usuario que ingreso por medio de un login en el evento Load del formulario.
Lo otro que queria saber es poder contar con algun tutorial para realizar un Web Service ResT, en el que pueda ir avanzando y me permita realizar consultas a la base de datos desde ese punto o si se puede almacenar una base de datos. Pido ayuda para aprender sobre la materia ya que debo desarrollar un web service para realizar un ingreso de usuario, llenar un DataGridView e insertar el archivo .PDF en la base de datos.
Lo siento por tantas consultas aunque mas me interesa lo primero, aunque no dejan de ser importante los demas consultas, dejare el codigo por el cual realizo la creacion del .PDF
private void btnAcheter_Click(object sender, EventArgs e) { btnAcheter.Enabled = false; /// <summary> /// Modificacion en el proceso la conexion al dispositivo especifico y requerido p /// su digitalizacion /// </summary> deviceManager.IsTwain2Compatible = true; // Abrir el administrador de dispositivos deviceManager.Open(); // Obtencion del dispositivo especifico string deviceName = "KODAK Scanner: i2000"; device = deviceManager.Devices.Find(deviceName); if (device == null) { MessageBox.Show("El driver del dispositivo " + deviceName + " no esta instalado o fue desinstalado del sistema, favor realizar la instalacion de dicho driver para su funcionamiento", "Administrador de dispositivos"); btnAcheter.Enabled = true; } else { // Dialogo de la seleccion del dispositivo a seleccionar // deviceManager.ShowDefaultDeviceSelectionDialog(); // Obtiene la referencia del dispositivo seleccionado // Deshabilitar device.ShowUI = false; device.DisableAfterAcquire = true; // abrir el dispositivo device.Open(); // Establece losparametros para la adquisicion device.TransferMode = TransferMode.Memory; device.PixelType = PixelType.Gray; device.UnitOfMeasure = UnitOfMeasure.Inches; device.Resolution = new Resolution(200.0f, 200.0f); //Parametros de Kodak Alaris string nomEquipe = Environment.MachineName; string dataJour = (DateTime.Today).ToString("yyyyMMdd"); string dataHeure = (DateTime.Now).ToString("HHmm"); string formatCode = "" + nomEquipe + "_" + dataJour + "_" + dataHeure + ".pdf"; //Modificar donde guardar el archivo del documento escaneado string pdfFilename = Path.Combine(@"C:\KCPdocumentos\KCP", formatCode); if (device.HasFeeder) { device.DocumentFeeder.Enabled = true; // Adquisicion de las imagenes desde el alimentador de documentos device.XferCount = -1; // si permite escanear las imagenes en ambas caras if (device.DocumentFeeder.DuplexMode != DuplexMode.None) { // habilitar paginas en modo duplex device.DocumentFeeder.DuplexEnabled = true; // si el alimentador detecta el papel if (device.DocumentFeeder.PaperDetectable) { // Si el alimentador esta cargado if (device.DocumentFeeder.Loaded) //adquiere imagenes de forma asincronica device.Acquire(); } else //adquiere imagenes de forma asincronica device.Acquire(); } } // adquerir imagenes desde el dispositivo AcquireModalState acquireModalState = AcquireModalState.None; AcquiredImage acquiredImage; do { acquireModalState = device.AcquireModal(); switch (acquireModalState) { case AcquireModalState.ImageAcquired: // obtener una referencia de la imagen adquirida por el dispositivo acquiredImage = device.AcquiredImage; // detectar bordes ProcessAcquiredImage(acquiredImage); // agregar una imagen que no sea blanca al multipagina TIFF // (0.01f) = 1% if (!acquiredImage.IsBlank(0.03f)) acquiredImage.Save(tiffFilename); // Disponer de la imagen adquirida acquiredImage.Dispose(); break; } } while (acquireModalState != AcquireModalState.None); // cerrar el dispositivo device.Close(); // cerrar el administrador de dispositivos deviceManager.Close(); // Desbloquear botones hasta terminar su funcion btnAccueil.Enabled = true; } }
Atte. Nicolás Villablanca
- Cambiado Joyce_AC viernes, 26 de mayo de 2017 15:18
Respuestas
-
Saludos,
La verdad no es una buena practica guardar archivos directo en la base de datos, lo que se hace con los PDF es guargar un binario y luego hacer referencia por medio de ese key los PDF se alojan en carpetas físicas y desde la base de le indica el path, revisa este ejemplo :
Si mi respuesta te ha ayudado a resolver tus problemas, Selecciona "Proponer como respuesta"
Blog
J.Joaquin- Marcado como respuesta Nicolás Villablanca jueves, 1 de junio de 2017 15:23
Todas las respuestas
-
Saludos,
La verdad no es una buena practica guardar archivos directo en la base de datos, lo que se hace con los PDF es guargar un binario y luego hacer referencia por medio de ese key los PDF se alojan en carpetas físicas y desde la base de le indica el path, revisa este ejemplo :
Si mi respuesta te ha ayudado a resolver tus problemas, Selecciona "Proponer como respuesta"
Blog
J.Joaquin- Marcado como respuesta Nicolás Villablanca jueves, 1 de junio de 2017 15:23
-
Buenas Joaquin
Comprendo que no es una buena practica guardar los archivos o imagenes en una base de datos y se guarda la ruta de donde se almaceno el archivo, aunque en este caso la base de datos es externa y desean guardar dicho archivo que se digitalizo desde un escaner a la bse de datos