【问题标题】:Why do i get broken image icon even if i set content-type="image/jpeg"?为什么即使我设置了 content-type="image/jpeg",我的图像图标也会损坏?
【发布时间】:2023-03-21 12:58:01
【问题描述】:

这个问题可能看起来很傻,但如果我能得到一个好的答案,我将不胜感激。 我知道什么是 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 并设置 header content-type:image/jpeg 并尝试在浏览器上打开它它不起作用说语法错误。

寻找一个好的解释。

【问题讨论】:

    标签: php html image http-headers


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-14
      • 2021-11-08
      • 2019-11-07
      • 2013-12-15
      • 1970-01-01
      • 1970-01-01
      • 2014-08-10
      • 1970-01-01
      相关资源
      最近更新 更多