使用Php / Ajax Oracle从Blob读取

时间:2014-09-08 05:49:26

标签: php ajax oracle pdf blob

我是PHP开发的新手。我想获取存储在blob列中的pdf文档,并将其显示在href我网站的不同页面上。但问题是它显示了adobe reader错误:

" PDF文档无法正确显示"

到目前为止(为了简单起见)我有这个:

<html>
<head>
<body>

<a href = "readMe.php?id=21">Click here!</a>

</body> 
</head>
</html>

PHP代码:

<?php
session_start();

$id = $_GET[id];
$conn = OCILogon("abc","abc","abcserver");

$qry = "select blob_file,doc_name from doc_data where ID =".$id;

$stmt = ociparse ($conn,$qry);

OCIDefineByName($stmt,"BLOB_FILE",$blobFile);
OCIDefineByName($stmt,"DOC_NAME",$blobFileName);
OCIExecute($stmt);

while ($rowResult = OCIFetch($stmt))
{
if($rowResult != null){

$a = $rowResult[0];

}
}
header('Content-type: application/pdf'); 
header('Content-disposition: inline;filename='.$blobFileName.'.pdf'); 
echo $a;

?>

请告诉我哪里出错了?

1 个答案:

答案 0 :(得分:0)

不知道为什么它有意义,但我替换了代码:

while ($rowResult = OCIFetch($stmt))
{
if($rowResult != null){
$a = $rowResult[0];
}

到此:

while ( $row = OCI_Fetch_Array($stmt, OCI_ASSOC+OCI_RETURN_LOBS) ) 
{
$a = $row['BLOB_FILE'];
}

保持其余代码相同,现在它可以很好地显示浏览器中的所有pdf。周:)