PHP从MSSQL Server检索图像

时间:2016-11-03 10:59:19

标签: php sql sql-server image encoding

我正在尝试检索存储在MSSSQL数据库中的图像。

以0xFFE896格式存储....

当我查询数据库的其他表时,它工作正常,但当我用图像查询表时,我遇到了编码问题。

使用SQL Image Viewer可以很好地显示图像。

要进行连接,我使用的是最新的SQLSRV_Connection。

代码:

$serverName = "192.100.2.2"; 

$connectionInfo = array( "Database"=>"test", "UID"=>"tester", "PWD"=>"11111","CharacterSet" =>"UTF-8");

$conn = sqlsrv_connect( $serverName, $connectionInfo);

查询表格:

$tsql = "SELECT * FROM Docs WHERE DocId = 12222";  
$stmt = sqlsrv_query($conn, $tsql); 

获取值:

if ( sqlsrv_fetch( $stmt ) )  
{  
   $image = sqlsrv_get_field( $stmt, 3,   
                      SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_BINARY));  

   header("Content-Type: image/jpg");  
   fpassthru($image);  

如果我回应图像,我会得到一个巨大的“字符串”,充满了?
结果为空<img> 10x10。

如果我在BD中存储了十六进制字符串,为什么会发生这种情况? 我不能改变Bd :(

mb_check_encoding($image)发送错误,“期望参数1为字符串,资源给定”。

0 个答案:

没有答案