使用 Content-Disposition 显示图像:使用 PHP 从数据库内联
Displaying image with Content-Disposition: inline from database using PHP
我希望将我的图像的二进制内容嵌入到我的数据库中,然后通过 PHP 脚本 return 它们。
我已经成功将数据存入数据库,可以查询数据库了。我可以创建一个文件下载页面。
header('Content-Type: '.$img_filetype);
header('Content-Disposition: attachment; filename="'.$img_filename.'"');
echo($img_binary_content);
例如,在我的网站上:https://davidsmedberg.me/img/test-sqlite.php?id=1
但是,我想要的是内联显示图像,以便它可以作为 img
标记的 src
包含在其他地方的 HTML 文档中。就像我可以使用这个文件一样:https://www.davidsmedberg.me/img/thames.jpg
当我尝试像这样替换 Content-Disposition
header 时:
header('Content-Type: '.$img_filetype);
header('Content-Disposition: inline');
echo($img_binary_content);
我得到一张格式错误的图像。例如,Firefox 会显示 The image cannot be displayed because it contains errors.
例如,在我的网站上:https://davidsmedberg.me/img/test-sqlite1.php?id=1
如果我没有明确设置 Content-Disposition
header.
,也会发生同样的事情
谁能帮我弄清楚我做错了什么?
你应该从你的php脚本中删除以下html代码,这些额外的HTML标签出现在图像内容的头部,导致浏览器无法识别图像
<!DOCTYPE html>
<html lang="en">
我希望将我的图像的二进制内容嵌入到我的数据库中,然后通过 PHP 脚本 return 它们。
我已经成功将数据存入数据库,可以查询数据库了。我可以创建一个文件下载页面。
header('Content-Type: '.$img_filetype);
header('Content-Disposition: attachment; filename="'.$img_filename.'"');
echo($img_binary_content);
例如,在我的网站上:https://davidsmedberg.me/img/test-sqlite.php?id=1
但是,我想要的是内联显示图像,以便它可以作为 img
标记的 src
包含在其他地方的 HTML 文档中。就像我可以使用这个文件一样:https://www.davidsmedberg.me/img/thames.jpg
当我尝试像这样替换 Content-Disposition
header 时:
header('Content-Type: '.$img_filetype);
header('Content-Disposition: inline');
echo($img_binary_content);
我得到一张格式错误的图像。例如,Firefox 会显示 The image cannot be displayed because it contains errors.
例如,在我的网站上:https://davidsmedberg.me/img/test-sqlite1.php?id=1
如果我没有明确设置 Content-Disposition
header.
谁能帮我弄清楚我做错了什么?
你应该从你的php脚本中删除以下html代码,这些额外的HTML标签出现在图像内容的头部,导致浏览器无法识别图像
<!DOCTYPE html>
<html lang="en">