ColdFusion CFPDF Lettura di una colonna di database binaria
-
12-12-2019 - |
Domanda
CFPDF può leggere direttamente una colonna di database binaria?
Attualmente lo ho dove eseguo una query per ottenere la colonna.
Utilizzare il cffiile per scrivere il file in una directory
Quindi leggi con CFPDF in modo da poter estrarre testo.
È possibile farlo senza il cffiile scrivere e leggere direttamente il file binario?
Se è così, potrei ottenere un esempio.
Soluzione
Quale versione stai usando?Il seguente ha funzionato per me con CF9 / MS SQL (colonna VARBINARIA)
<cfquery name="getPdf" ....>
SELECT Data
FROM someTable
WHERE ID = 123
</cfquery>
<cfset pdfBinary = getPdf.data[1]>
<cfpdf action="extractText" source="pdfBinary" name="result">
<cfdump var="#result#">
.
Modifica: Per chiarire, CFPDF si lamenta quando si utilizza queryName.columnName
come "Sorgente".Sospetto che CFPDF lo veda come una colonna di query oggetto invece di afferrare automaticamente il valore nella prima riga della query IE queryName.columnName[ 1 ]
.Il work-around è quello di creare un riferimento ad esso e utilizzare invece l'altra variabile.
Altri suggerimenti
Non sono sicuro al 100%, ma dovresti essere in grado di fare qualcosa del genere:
<cfset myPDF = binaryEncode(binaryData,'base64')>
<cfpdf action="read" source="myPDF" name="PDFObj">
. Ho trovato un modo semplice per farlo:
<cfheader name="Content-Disposition" value="inline; filename=test.pdf">
<cfcontent type="application/pdf" variable="#qGetFile.uploaded_file#">
.
Questo era già nel codice che ho ereditato, ma non funzionava mai.Ho trovato il problema è stato il DataSource e non il codice;Non è stato impostato per accettare Blobs.