无法使用php检索jpg图像
我正在从oracle数据库检索一个jpg文件,并尝试使用echo命令输出它。jpg文件作为blob存储在数据库中,当我从数据库访问它时,它会正确显示。以下是相关代码:无法使用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
$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);
这个修好了,谢谢!结果是我有一些尾随空格,我甚至没有想过要检查。去掉这些,增加一个出口;当然可以。