当前位置: 首页 > 面试题库 >

返回一个PHP页面作为图像

邢凯歌
2023-03-14
问题内容

我正在尝试读取图像文件(准确地说是.jpeg),并将其“回显”回页面输出,但是却显示了图像…

我的index.php具有这样的图像链接:

<img src='test.php?image=1234.jpeg' />

和我的PHP脚本基本上做到这一点:

1)读取1234.jpeg 2)echo文件内容… 3)我觉得我需要使用mime类型返回输出,但这是我迷路的地方

一旦弄清楚了,我将删除所有输入的文件名,并将其替换为图像ID。

如果我不清楚,或者您需要更多信息,请回复。


问题答案:

PHP手册包含以下示例:

<?php
// open the file in a binary mode
$name = './img/ok.png';
$fp = fopen($name, 'rb');

// send the right headers
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

// dump the picture and stop the script
fpassthru($fp);
exit;
?>

重要的是您必须发送Content-Type标头。另外,您必须注意不要在<?php ... ?>标签之前或之后在文件中包含任何多余的空格(例如换行符)。

如注释中所建议,可以通过省略?>标签来避免脚本末尾出现多余空格的危险:

<?php
$name = './img/ok.png';
$fp = fopen($name, 'rb');

header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

fpassthru($fp);

您仍然需要小心避免在脚本顶部使用空格。一种特别棘手的空白形式是UTF-8BOM。为避免这种情况,请确保将脚本另存为“
ANSI”(记事本)或“ ASCII”或“ UTF-8无签名”(Emacs)或类似名称。



 类似资料:
  • 我有一个php网站,它必须以分页格式在页面上显示项目列表,我使用php实现了这一点,但现在我想在其中添加ajax功能,所以我添加了这个函数,在分页部分单击page no时调用。Ajax/jQuery函数:(.paginate是页面链接的类) 我的分页功能有点像这样: 在我想要显示分页的div的页面上,我得到的是整个页面作为响应,而不是分页的div。我已经将分页的div分离到一个单独的页面,并将其包

  • 问题内容: 我有一个将数据发送到php脚本的jquery-ajax函数,问题在于返回值,它返回整个页面而不是单个值。 感谢您的时间和帮助。 问题答案: 就是这样。您是通过AJAX进行请求的,因此您将获得其中的任何内容。 如果您想要一个特定的值,请创建一个仅输出该值的新PHP页面,然后请求该URL的内容。

  • 我正在查询URI以从web服务获取一些数据。那很好。但我注意到,我的json hase多页的page\u计数,但只返回第一页数据。 以下是json的样子: 如何返回所有页面而不是只返回第一页?我知道这可能不是个好主意,但我该怎么做? 更新:web服务的URI类似于: 谢谢

  • 我有下面的代码,我正在使用从flipkart网站的图片,所有的工作都很好,但我不知道为什么它只是检索前四个图片,而不是所有的图片出现在网页上。帮助我排序这一个

  • 本文向大家介绍Ajax中responseText返回的是一个页面而不是一个值,包括了Ajax中responseText返回的是一个页面而不是一个值的使用技巧和注意事项,需要的朋友参考一下 自己在struts2中的写好了业务逻辑用response返回的内容却是一个页面的! 然后就去了百度一下,说的是将struts2的返回值设为null(return null),这是因为struts2返回的是一个页面

  • 问题内容: 我有几个查询,下面详述。我希望能够运行一个同时返回两个计数的SQL查询,这可能吗? 1。 2。 到目前为止,我仅在搜索中找到MSSQL特定的解决方案。 问题答案: 如果您单行需要它们: (无论如何,Thilo的GROUP BY方法都是更好的通用解决方案。) 编辑: 我已经删除了。我已经忘记了为什么我从不使用它。