이진 데이터베이스 열을 읽는 Coldfusion CFPDF
-
12-12-2019 - |
문제
cfpdf가 바이너리 데이터베이스 열을 직접 읽을 수 있습니까?
현재 열을 가져오기 위해 쿼리를 실행하는 곳이 있습니다.
cffile을 사용하여 파일을 디렉토리에 씁니다.
그런 다음 cfpdf로 읽어 텍스트를 추출할 수 있습니다.
cffile 쓰기 없이 이 작업을 수행하고 바이너리 파일을 직접 읽을 수 있습니까?
그렇다면 예를 들어볼 수 있을까요?
해결책
어떤 버전을 사용하고 있나요?다음은 CF9/MS SQL(varbinary 열)에서 저에게 효과적이었습니다.
<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#">
편집하다: 명확히 하기 위해 cfpdf는 다음을 사용할 때 불평합니다. queryName.columnName
"소스"로.cfpdf가 이를 쿼리 열로 인식하는 것 같습니다. 물체 쿼리의 첫 번째 행에 있는 값을 자동으로 가져오는 대신 즉, queryName.columnName[ 1 ]
.해결 방법은 이에 대한 참조를 만들고 대신 다른 변수를 사용하는 것입니다.
다른 팁
나는 100 % 확실하지 않지만, 당신은 다음과 같이 할 수 있어야합니다 :
<cfset myPDF = binaryEncode(binaryData,'base64')>
<cfpdf action="read" source="myPDF" name="PDFObj">
. 이 작업을 수행 할 간단한 방법을 찾았습니다.
<cfheader name="Content-Disposition" value="inline; filename=test.pdf">
<cfcontent type="application/pdf" variable="#qGetFile.uploaded_file#">
.
이것은 이미 내가 상속 된 코드에 이미 있었지만 결코 작동하지 않았습니다.나는 문제가 데이터 소스가 아니라 코드가 아니라는 것을 발견했다.BLOB를 받아 들일 수 없었습니다.
제휴하지 않습니다 StackOverflow