2011-02-09 27 views
5

Un cliente desea que los documentos de Word se guarden en una base de datos mySQL a pesar de que yo discuto. Los documentos en sí no deben ser particularmente grandes, no más de 1 MB cada uno. He permitido BLOB de administrador CF y establecer el búfer gota a 1.000.000Cómo almacenar un documento de Word como un BLOB en mySQL con Coldfusion

Aquí está mi SQL

<cfset newMessageID=1569> 
<cfset fileName="c:\temp\0.doc"> 

<cffile action = "readbinary" 
file = "#fileName#" 
variable = "fileData"> 

<cfquery name="addFile" datasource='#application.dsn#'> 
    INSERT into files (fileID, fileData) 
    Values (#newMessageID#, <cfqueryparam value="#fileData#" cfsqltype="CF_SQL_BLOB">) 
</cfquery> 

consigo "truncamiento de datos: Los datos demasiado largo para la columna 'filedata' en la fila 1" error. El campo de datos de archivos en la tabla de archivos está definitivamente configurado en blob. ¿Qué estoy haciendo mal?

CF 9.01, MySQL 5.4

¿Qué estoy haciendo mal

+0

usted piensa es necesario ajustar el '# fileData #' en 'ToBase64()' - vea los documentos aquí: http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=Tags_f_08.html Read usa 'BinaryEncode () 'para convertirlo de nuevo: http://livedocs.adobe.com/coldfusion/8/htmldocs/help.html?content=functions_a-b_31.html#4989676 – orangepips

+0

Ya lo intenté. Si simplemente convierto a Base64, arroja un error de conversión con mi cfqueryparam. Si corro sin cfqueryparam estoy de vuelta a "data too long for column 'filedata'" – Saul

+0

@Saul - ¿Qué tipo de 'blob'? Hay diferentes tipos de long, medium, ... http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html y http://dev.mysql.com/doc/refman/5.0 /es/blob.html – Leigh

Respuesta

5

¿Qué tipo de burbuja? Hay diferentes tipos, incluido long and medium blob. Blob es (aproximadamente) 2^16 = 65,536 bytes, la media es de 2^24 = 16,777,216 bytes. Si crees que puedes superar el blob mediano, entonces usa longblob, es decir, 2^32.

-2

Solo una mala, mala idea.

lo haría cualquiera:

  1. Convertir a texto de archivos primero, y luego a simplificar la importación de texto que acaba de crudo.

  2. O simplemente subirlo a alguna carpeta, y que esté disponible para la descarga de nuevo o ver en línea

su corte de su propia garganta tratando de almacenarla en la base de datos ...

+0

Usted leyó en el OP que yo argumenté en contra, ¿verdad? Al final del día, el que paga el gaitero ... de todos modos, no creo que vaya a ser tan malo. Analizo el documento de Word y lo guardo en una tabla para los metadatos, que es todo lo que se usa para las consultas/uniones. La tabla de archivos solo tiene ID y mediumblob. En el lado positivo, la seguridad del archivo, el registro y la copia de seguridad son más fáciles ;-) – Saul

Cuestiones relacionadas