显示文件/图像时使用 php 更改选项卡名称

问题描述 投票:0回答:1

我目前正在创建一个 php 页面,该页面从一个 API 接收图像并显示该图像(此 php 允许用户使用 GET 方法定义图像尺寸)。

我希望这个 php 文件在选项卡上显示图像的名称(或我想放在那里的东西)。只用php可以吗?

这是我当前的代码:

$filename = "...";

// Content type
header('Content-Type: image/jpg');

//I tried this but this is just for download
// header('Content-Disposition: Attachment;filename=image.png');

...

// Get new sizes
list($width, $height) = getimagesize($filename);

$newwidth =  150;
$newheight = 150;
        
...

// Load
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefrompng($filename);


// Resize
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
        
// Output
imagepng($thumb);
php filenames
1个回答
0
投票

PHP 无法直接控制浏览器。事实上,浏览器根本不知道 PHP 的存在

HTTP 的工作方式,从浏览器的角度来看是这样的:

  1. 您在浏览器的地址栏中输入 URL,或单击链接,例如
    https://example.com/foo/bar?a=1#bar
  2. 浏览器查看 URL 的第一部分(在
    https://
    和下一个
    /
    之间)并连接到它在那里看到的任何服务器(例如
    example.com
  3. 然后它查看 URL 的其余部分(或直到
    #
    符号的所有内容,如果有的话),并向服务器发送请求,例如
    GET /foo/bar/?a=1
  4. 服务器回复一些标头正文数据
  5. 浏览器必须解释它并决定显示什么。最重要的标头是
    Content-Type
    ,它告诉浏览器正文数据是 HTML 页面、JPEG 图像、PDF 等。

从 PHP 的角度来看,一切都发生在步骤 3 和 4 之间:

  1. 服务器收到请求,例如
    GET /foo/bar/?a=1
  2. 一些 PHP 代码运行,并输出一些标头和一些数据
  3. 结束了。

希望这可以解释为什么不能有任何特定于 PHP 的方法来更改浏览器选项卡的标题。只有两件事可以影响它:

    HTTP 响应标头
  • 数据,采用特定文件格式
据我所知,

没有用于指定浏览器选项卡标题的 HTTP 标头。如果您要输出 HTML 页面,则可以在 响应正文

中使用 
<title> 标签。但 JPEG 或 PNG 文件没有“标题”,因此无法输出该文件。

但是,您可以生成一个 HTML 页面,并且

在该页面中 有一个 <img>

 标签指向 
实际 图像。

© www.soinside.com 2019 - 2024. All rights reserved.