Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用php检索jpg图像_Php_Oracle_Http - Fatal编程技术网

无法使用php检索jpg图像

无法使用php检索jpg图像,php,oracle,http,Php,Oracle,Http,我正在从oracle数据库检索一个jpg文件,并尝试使用echo命令输出它。jpg文件作为blob存储在数据库中,当我从数据库访问它时,它会正确显示。以下是相关代码: $query = 'select * from answer where answer_id = :answer_id'; $stmt = oci_parse($conn, $query); oci_bind_by_name($stmt, ':answer_id', $answer_id); oci_execute($stm

我正在从oracle数据库检索一个jpg文件,并尝试使用echo命令输出它。jpg文件作为blob存储在数据库中,当我从数据库访问它时,它会正确显示。以下是相关代码:

$query = 'select * from answer where answer_id = :answer_id';

$stmt = oci_parse($conn, $query);

oci_bind_by_name($stmt, ':answer_id', $answer_id);

oci_execute($stmt);


if ($row = oci_fetch_array($stmt, OCI_BOTH)){

    header('Content-type: image/jpeg');

    $mylob =  $row['ANS_PICTURE']->load();
    echo $mylob;

}
这会发送与文件大小一致的数据量,但浏览器完全无法将其解释为图像

奇怪的是,当我使用

$fp = fopen('test.jpg', 'w');
fwrite($fp, $mylob);
我可以保存该文件,并且它在显示图像时没有问题,甚至可以使用浏览器通过服务器打开图像

如果我添加了一个文件处理头并提示用户保存图像,那么在打开图像时它仍然不会显示图像

因此,在打印数据和浏览器接收数据之间似乎存在问题,尽管我不知道问题出在哪里


有人有什么想法吗?

检查在图像数据之前或之后是否有额外的输出

特别是,检查

  • A在打开
    标签或更好的标签之前,执行
    退出在回显图像数据后

最后,这可能没有任何效果,但我相信正确的标题名称是
内容类型
(大写“C”,大写“T”)。

尝试添加内容长度标题。您应该从数据库中检索$mylob_length,因为每次检查它都可能会减慢速度:

header('Content-Length: ' . $mylob_length);

这个修好了,谢谢!结果是我有一些尾随空格,我甚至没有想过要检查。去掉这些,增加一个出口;当然可以。