猿问

尝试在 `<img src="..."` 标记中显示来自 PHP 脚本的回显图像

目标:

1)我在Web根目录之外有一个图像文件夹,其中放置了来自Web应用程序的所有图像(每个图像路径都保存在数据库表中);

2)我想根据用户的请求获取该图像。

很简单,对吧?

我做了:

a) 创建一个类来读取图像(具有我记得的所有安全功能和保护措施)。它(成功)返回使用相应 mime 类型编码 (base64) 的图像。

b) 为了演示目的,我创建了一个index.php,其中包含:

<img src="agivenscript.php?img=name.jpeg">

我在这里的唯一目标是从我的 Web 应用程序中的任何其他位置调用一个脚本,该脚本输出具有相应 mime 类型的 Base64 编码图像。

c) 创建一个脚本“agivenscript.php”,它通过 GET 接收图像名称,实例化我的类,并在一切正常时获取 Base64 编码的图像。然后它会呼应图像。

会发生什么:

  • 当我在 agivenscript.php 中使用 echo 进行输出时,'<img src="' . $output64encodedwithmimetype . '">';它就像一个魅力;

  • 此外,如果我采用 $output64encodedwithmimetype 内容并将字符串直接放在 index.php 的 src 标记中,它也可以工作。

  • 但是,当我尝试时它不起作用<img src="agivenscript.php?img=name.jpeg">

由于 base64 编码的图像显然很好(并且具有 mime 类型),所以我缺少什么?任何想法?

预先感谢。


慕勒3428872
浏览 94回答 1
1回答

catspeake

data:方案 URL 可以进行 Base64 编码。image/jpeg(或 png 或其他)的 HTTP 响应不能。您需要提供实际的图像数据,而不将其编码为文本。readfile可能就是您所需要的。
随时随地看视频慕课网APP

相关分类

Html5
我要回答