【发布时间】:2011-09-06 21:58:01
【问题描述】:
我正在从 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);
我可以保存文件,显示图像也没有问题,即使使用浏览器通过服务器打开图像。
如果我添加一个文件处理标题并提示用户保存图像,当我打开它时它仍然不显示图像。
所以打印数据和浏览器接收数据之间似乎存在问题,尽管我不知道问题可能是什么。
有人有想法吗?
【问题讨论】: