为什么即使我设置了内容类型=“图像/jpeg”,我也会得到损坏的图像图标


Why do i get broken image icon even if i set content-type="image/jpeg"?

这个问题可能看起来很愚蠢,但如果我得到一个好的答案,我将不胜感激。我知道什么是http标头,我们可以在php中使用header函数进行更改。假设我有一个 php 文件an_image.php,它的代码如下:

<?php header('Content-type:image/jpeg'); ?>
<img src="image/flower.jpg">

为什么我得到一个损坏的图标?通过更改header内容类型,我不是将输出更改为图像吗?

因为我认为img标签仍然是html输出,因此当我尝试将html内容设置为图像内容时,我得到了损坏的图标。

那么content-type:image/jpeg有什么用,在哪里可以使用呢?例如flower.jpg图片在我的图像文件夹中。如果我创建flower.php 并使用文本编辑器打开flower.jpg并复制其代码并将其粘贴到flower.php上,并设置heade r content-type:image/jpeg并尝试在浏览器上打开它不起作用说语法错误。

寻找一个好的解释.

要输出的内容的正确内容类型是 text/html 。仅当输出实际图像文件本身的内容时,才应使用 image/jpeg 内容类型。

<?php
header('Content-Type: image/jpeg');
readfile('image/flower.jpg');

常见用途包括在验证用户的权限允许访问受保护文件后让 PHP 脚本输出受保护的文件、跟踪像素(例如,保存一些数据然后提供 1x1 图像)以及提供动态生成的图像。